src/HOL/Divides.thy
changeset 63317 ca187a9f66da
parent 63145 703edebd1d92
child 63417 c184ec919c70
equal deleted inserted replaced
63305:3b6975875633 63317:ca187a9f66da
   360 lemma dvd_mod: "k dvd m \<Longrightarrow> k dvd n \<Longrightarrow> k dvd (m mod n)"
   360 lemma dvd_mod: "k dvd m \<Longrightarrow> k dvd n \<Longrightarrow> k dvd (m mod n)"
   361   unfolding dvd_def by (auto simp add: mod_mult_mult1)
   361   unfolding dvd_def by (auto simp add: mod_mult_mult1)
   362 
   362 
   363 lemma dvd_mod_iff: "k dvd n \<Longrightarrow> k dvd (m mod n) \<longleftrightarrow> k dvd m"
   363 lemma dvd_mod_iff: "k dvd n \<Longrightarrow> k dvd (m mod n) \<longleftrightarrow> k dvd m"
   364 by (blast intro: dvd_mod_imp_dvd dvd_mod)
   364 by (blast intro: dvd_mod_imp_dvd dvd_mod)
       
   365 
       
   366 lemma div_div_eq_right:
       
   367   assumes "c dvd b" "b dvd a"
       
   368   shows   "a div (b div c) = a div b * c"
       
   369 proof -
       
   370   from assms have "a div b * c = (a * c) div b"
       
   371     by (subst dvd_div_mult) simp_all
       
   372   also from assms have "\<dots> = (a * c) div ((b div c) * c)" by simp
       
   373   also have "a * c div (b div c * c) = a div (b div c)"
       
   374     by (cases "c = 0") simp_all
       
   375   finally show ?thesis ..
       
   376 qed
       
   377 
       
   378 lemma div_div_div_same:
       
   379   assumes "d dvd a" "d dvd b" "b dvd a"
       
   380   shows   "(a div d) div (b div d) = a div b"
       
   381   using assms by (subst dvd_div_mult2_eq [symmetric]) simp_all
   365 
   382 
   366 end
   383 end
   367 
   384 
   368 class ring_div = comm_ring_1 + semiring_div
   385 class ring_div = comm_ring_1 + semiring_div
   369 begin
   386 begin