equal
deleted
inserted
replaced
161 lemma mult_mod_right: "c * (a mod b) = (c * a) mod (c * b)" |
161 lemma mult_mod_right: "c * (a mod b) = (c * a) mod (c * b)" |
162 by (fact mod_mult_mult1 [symmetric]) |
162 by (fact mod_mult_mult1 [symmetric]) |
163 |
163 |
164 lemma dvd_mod: "k dvd m \<Longrightarrow> k dvd n \<Longrightarrow> k dvd (m mod n)" |
164 lemma dvd_mod: "k dvd m \<Longrightarrow> k dvd n \<Longrightarrow> k dvd (m mod n)" |
165 unfolding dvd_def by (auto simp add: mod_mult_mult1) |
165 unfolding dvd_def by (auto simp add: mod_mult_mult1) |
|
166 |
|
167 lemma div_plus_div_distrib_dvd_left: |
|
168 "c dvd a \<Longrightarrow> (a + b) div c = a div c + b div c" |
|
169 by (cases "c = 0") (auto elim: dvdE) |
|
170 |
|
171 lemma div_plus_div_distrib_dvd_right: |
|
172 "c dvd b \<Longrightarrow> (a + b) div c = a div c + b div c" |
|
173 using div_plus_div_distrib_dvd_left [of c b a] |
|
174 by (simp add: ac_simps) |
166 |
175 |
167 named_theorems mod_simps |
176 named_theorems mod_simps |
168 |
177 |
169 text \<open>Addition respects modular equivalence.\<close> |
178 text \<open>Addition respects modular equivalence.\<close> |
170 |
179 |