equal
deleted
inserted
replaced
12 |
12 |
13 theorem sqrt_prime_irrational: |
13 theorem sqrt_prime_irrational: |
14 assumes "prime (p::nat)" |
14 assumes "prime (p::nat)" |
15 shows "sqrt p \<notin> \<rat>" |
15 shows "sqrt p \<notin> \<rat>" |
16 proof |
16 proof |
17 from \<open>prime p\<close> have p: "1 < p" by (simp add: prime_def) |
17 from \<open>prime p\<close> have p: "1 < p" by (simp add: is_prime_nat_iff) |
18 assume "sqrt p \<in> \<rat>" |
18 assume "sqrt p \<in> \<rat>" |
19 then obtain m n :: nat where |
19 then obtain m n :: nat where |
20 n: "n \<noteq> 0" and sqrt_rat: "\<bar>sqrt p\<bar> = m / n" |
20 n: "n \<noteq> 0" and sqrt_rat: "\<bar>sqrt p\<bar> = m / n" |
21 and "coprime m n" by (rule Rats_abs_nat_div_natE) |
21 and "coprime m n" by (rule Rats_abs_nat_div_natE) |
22 have eq: "m\<^sup>2 = p * n\<^sup>2" |
22 have eq: "m\<^sup>2 = p * n\<^sup>2" |
57 |
57 |
58 theorem |
58 theorem |
59 assumes "prime (p::nat)" |
59 assumes "prime (p::nat)" |
60 shows "sqrt p \<notin> \<rat>" |
60 shows "sqrt p \<notin> \<rat>" |
61 proof |
61 proof |
62 from \<open>prime p\<close> have p: "1 < p" by (simp add: prime_def) |
62 from \<open>prime p\<close> have p: "1 < p" by (simp add: is_prime_nat_iff) |
63 assume "sqrt p \<in> \<rat>" |
63 assume "sqrt p \<in> \<rat>" |
64 then obtain m n :: nat where |
64 then obtain m n :: nat where |
65 n: "n \<noteq> 0" and sqrt_rat: "\<bar>sqrt p\<bar> = m / n" |
65 n: "n \<noteq> 0" and sqrt_rat: "\<bar>sqrt p\<bar> = m / n" |
66 and "coprime m n" by (rule Rats_abs_nat_div_natE) |
66 and "coprime m n" by (rule Rats_abs_nat_div_natE) |
67 from n and sqrt_rat have "m = \<bar>sqrt p\<bar> * n" by simp |
67 from n and sqrt_rat have "m = \<bar>sqrt p\<bar> * n" by simp |