src/HOL/NumberTheory/IntPrimes.thy
changeset 13183 c7290200b3f4
parent 11868 56db9f3a6b3e
child 13187 e5434b822a96
equal deleted inserted replaced
13182:21851696dbf0 13183:c7290200b3f4
   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)