equal
deleted
inserted
replaced
271 apply (rule gcd_diff2) |
271 apply (rule gcd_diff2) |
272 apply (simp add: nat_le_eq_zle) |
272 apply (simp add: nat_le_eq_zle) |
273 done |
273 done |
274 |
274 |
275 lemma zgcd_eq: "zgcd (m, n) = zgcd (n, m mod n)" |
275 lemma zgcd_eq: "zgcd (m, n) = zgcd (n, m mod n)" |
276 apply (tactic {* zdiv_undefined_case_tac "n = 0" 1 *}) |
276 apply (case_tac "n = 0", simp add: DIVISION_BY_ZERO) |
277 apply (auto simp add: linorder_neq_iff zgcd_non_0) |
277 apply (auto simp add: linorder_neq_iff zgcd_non_0) |
278 apply (cut_tac m = "-m" and n = "-n" in zgcd_non_0) |
278 apply (cut_tac m = "-m" and n = "-n" in zgcd_non_0) |
279 apply auto |
279 apply auto |
280 done |
280 done |
281 |
281 |
662 lemma zcong_zero [iff]: "[a = b] (mod 0) = (a = b)" |
662 lemma zcong_zero [iff]: "[a = b] (mod 0) = (a = b)" |
663 apply (auto simp add: zcong_def) |
663 apply (auto simp add: zcong_def) |
664 done |
664 done |
665 |
665 |
666 lemma "[a = b] (mod m) = (a mod m = b mod m)" |
666 lemma "[a = b] (mod m) = (a mod m = b mod m)" |
667 apply (tactic {* zdiv_undefined_case_tac "m = 0" 1 *}) |
667 apply (case_tac "m = 0", simp add: DIVISION_BY_ZERO) |
668 apply (case_tac "0 < m") |
668 apply (case_tac "0 < m") |
669 apply (simp add: zcong_zmod_eq) |
669 apply (simp add: zcong_zmod_eq) |
670 apply (rule_tac t = m in zminus_zminus [THEN subst]) |
670 apply (rule_tac t = m in zminus_zminus [THEN subst]) |
671 apply (subst zcong_zminus) |
671 apply (subst zcong_zminus) |
672 apply (subst zcong_zmod_eq) |
672 apply (subst zcong_zmod_eq) |