equal
deleted
inserted
replaced
582 have dvdg: "?g dvd a" "?g dvd b" by simp_all |
582 have dvdg: "?g dvd a" "?g dvd b" by simp_all |
583 have dvdg': "?g' dvd ?a'" "?g' dvd ?b'" by simp_all |
583 have dvdg': "?g' dvd ?a'" "?g' dvd ?b'" by simp_all |
584 from dvdg dvdg' obtain ka kb ka' kb' where |
584 from dvdg dvdg' obtain ka kb ka' kb' where |
585 kab: "a = ?g * ka" "b = ?g * kb" "?a' = ?g' * ka'" "?b' = ?g' * kb'" |
585 kab: "a = ?g * ka" "b = ?g * kb" "?a' = ?g' * ka'" "?b' = ?g' * kb'" |
586 unfolding dvd_def by blast |
586 unfolding dvd_def by blast |
587 then have "?g * ?a' = (?g * ?g') * ka'" "?g * ?b' = (?g * ?g') * kb'" |
587 from this [symmetric] have "?g * ?a' = (?g * ?g') * ka'" "?g * ?b' = (?g * ?g') * kb'" |
588 by simp_all |
588 by (simp_all add: mult.assoc mult.left_commute [of "gcd a b"]) |
589 then have dvdgg':"?g * ?g' dvd a" "?g* ?g' dvd b" |
589 then have dvdgg':"?g * ?g' dvd a" "?g* ?g' dvd b" |
590 by (auto simp add: dvd_mult_div_cancel [OF dvdg(1)] |
590 by (auto simp add: dvd_mult_div_cancel [OF dvdg(1)] |
591 dvd_mult_div_cancel [OF dvdg(2)] dvd_def) |
591 dvd_mult_div_cancel [OF dvdg(2)] dvd_def) |
592 have "?g \<noteq> 0" using nz by simp |
592 have "?g \<noteq> 0" using nz by simp |
593 then have gp: "?g > 0" by arith |
593 then have gp: "?g > 0" by arith |