equal
deleted
inserted
replaced
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 ==> |