src/HOL/Divides.thy
changeset 65556 fcd599570afa
parent 64848 c50db2128048
child 66630 034cabc4fda5
equal deleted inserted replaced
65555:85ed070017b7 65556:fcd599570afa
   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