equal
deleted
inserted
replaced
21 lemma prime_dvd_other_side: "n * n = p * (k * k) \<Longrightarrow> p \<in> prime \<Longrightarrow> p dvd n" |
21 lemma prime_dvd_other_side: "n * n = p * (k * k) \<Longrightarrow> p \<in> prime \<Longrightarrow> p dvd n" |
22 apply (subgoal_tac "p dvd n * n", blast dest: prime_dvd_mult) |
22 apply (subgoal_tac "p dvd n * n", blast dest: prime_dvd_mult) |
23 apply (rule_tac j = "k * k" in dvd_mult_left, simp) |
23 apply (rule_tac j = "k * k" in dvd_mult_left, simp) |
24 done |
24 done |
25 |
25 |
26 lemma reduction: |
26 lemma reduction: "p \<in> prime \<Longrightarrow> |
27 "p \<in> prime \<Longrightarrow> 0 < k \<Longrightarrow> k * k = p * (j * j) \<Longrightarrow> k < p * j \<and> 0 < j" |
27 0 < k \<Longrightarrow> k * k = p * (j * j) \<Longrightarrow> k < p * j \<and> 0 < j" |
28 apply (rule ccontr) |
28 apply (rule ccontr) |
29 apply (simp add: linorder_not_less) |
29 apply (simp add: linorder_not_less) |
30 apply (erule disjE) |
30 apply (erule disjE) |
31 apply (frule mult_le_mono, assumption) |
31 apply (frule mult_le_mono, assumption) |
32 apply auto |
32 apply auto |