src/HOL/NumberTheory/IntPrimes.thy
changeset 29667 53103fc8ffa3
parent 29412 4085a531153d
child 29925 17d1e32ef867
equal deleted inserted replaced
29549:7187373c6cb1 29667:53103fc8ffa3
   144   done
   144   done
   145 
   145 
   146 lemma zcong_trans:
   146 lemma zcong_trans:
   147     "[a = b] (mod m) ==> [b = c] (mod m) ==> [a = c] (mod m)"
   147     "[a = b] (mod m) ==> [b = c] (mod m) ==> [a = c] (mod m)"
   148   unfolding zcong_def
   148   unfolding zcong_def
   149   apply (auto elim!: dvdE simp add: ring_simps)
   149   apply (auto elim!: dvdE simp add: algebra_simps)
   150   unfolding left_distrib [symmetric]
   150   unfolding left_distrib [symmetric]
   151   apply (rule dvd_mult dvd_refl)+
   151   apply (rule dvd_mult dvd_refl)+
   152   done
   152   done
   153 
   153 
   154 lemma zcong_zmult:
   154 lemma zcong_zmult:
   253   apply (metis zmult_div_cancel)
   253   apply (metis zmult_div_cancel)
   254   done
   254   done
   255 
   255 
   256 lemma zcong_iff_lin: "([a = b] (mod m)) = (\<exists>k. b = a + m * k)"
   256 lemma zcong_iff_lin: "([a = b] (mod m)) = (\<exists>k. b = a + m * k)"
   257   unfolding zcong_def
   257   unfolding zcong_def
   258   apply (auto elim!: dvdE simp add: ring_simps)
   258   apply (auto elim!: dvdE simp add: algebra_simps)
   259   apply (rule_tac x = "-k" in exI) apply simp
   259   apply (rule_tac x = "-k" in exI) apply simp
   260   done
   260   done
   261 
   261 
   262 lemma zgcd_zcong_zgcd:
   262 lemma zgcd_zcong_zgcd:
   263   "0 < m ==>
   263   "0 < m ==>