358 also note pab |
358 also note pab |
359 finally have pab': "p dvd a * b". |
359 finally have pab': "p dvd a * b". |
360 from prime_dvd_mult_nat[OF p pab'] |
360 from prime_dvd_mult_nat[OF p pab'] |
361 have "p dvd a \<or> p dvd b" . |
361 have "p dvd a \<or> p dvd b" . |
362 moreover |
362 moreover |
363 {assume pa: "p dvd a" |
363 { assume pa: "p dvd a" |
364 have pnba: "p^n dvd b*a" using pab by (simp add: mult_commute) |
|
365 from coprime_common_divisor_nat [OF ab, OF pa] p have "\<not> p dvd b" by auto |
364 from coprime_common_divisor_nat [OF ab, OF pa] p have "\<not> p dvd b" by auto |
366 with p have "coprime b p" |
365 with p have "coprime b p" |
367 by (subst gcd_commute_nat, intro prime_imp_coprime_nat) |
366 by (subst gcd_commute_nat, intro prime_imp_coprime_nat) |
368 hence pnb: "coprime (p^n) b" |
367 hence pnb: "coprime (p^n) b" |
369 by (subst gcd_commute_nat, rule coprime_exp_nat) |
368 by (subst gcd_commute_nat, rule coprime_exp_nat) |
370 from coprime_divprod_nat[OF pnba pnb] have ?thesis by blast } |
369 from coprime_dvd_mult_nat[OF pnb pab] have ?thesis by blast } |
371 moreover |
370 moreover |
372 {assume pb: "p dvd b" |
371 { assume pb: "p dvd b" |
373 have pnba: "p^n dvd b*a" using pab by (simp add: mult_commute) |
372 have pnba: "p^n dvd b*a" using pab by (simp add: mult_commute) |
374 from coprime_common_divisor_nat [OF ab, of p] pb p have "\<not> p dvd a" |
373 from coprime_common_divisor_nat [OF ab, of p] pb p have "\<not> p dvd a" |
375 by auto |
374 by auto |
376 with p have "coprime a p" |
375 with p have "coprime a p" |
377 by (subst gcd_commute_nat, intro prime_imp_coprime_nat) |
376 by (subst gcd_commute_nat, intro prime_imp_coprime_nat) |
378 hence pna: "coprime (p^n) a" |
377 hence pna: "coprime (p^n) a" |
379 by (subst gcd_commute_nat, rule coprime_exp_nat) |
378 by (subst gcd_commute_nat, rule coprime_exp_nat) |
380 from coprime_divprod_nat[OF pab pna] have ?thesis by blast } |
379 from coprime_dvd_mult_nat[OF pna pnba] have ?thesis by blast } |
381 ultimately have ?thesis by blast} |
380 ultimately have ?thesis by blast} |
382 ultimately show ?thesis by blast |
381 ultimately show ?thesis by blast |
383 qed |
382 qed |
384 |
383 |
385 subsection {* Infinitely many primes *} |
384 subsection {* Infinitely many primes *} |