src/HOL/Divides.thy
changeset 68100 b2d84b1114fa
parent 67828 655d03493d0f
child 68157 057d5b4ce47e
equal deleted inserted replaced
68099:305f9f3edf05 68100:b2d84b1114fa
  1293 declare minus_div_mult_eq_mod [symmetric, nitpick_unfold]
  1293 declare minus_div_mult_eq_mod [symmetric, nitpick_unfold]
  1294 
  1294 
  1295 
  1295 
  1296 subsubsection \<open>Lemmas of doubtful value\<close>
  1296 subsubsection \<open>Lemmas of doubtful value\<close>
  1297 
  1297 
  1298 lemma mod_mult_self3':
       
  1299   "Suc (k * n + m) mod n = Suc m mod n"
       
  1300   by (fact Suc_mod_mult_self3)
       
  1301 
       
  1302 lemma mod_Suc_eq_Suc_mod:
  1298 lemma mod_Suc_eq_Suc_mod:
  1303   "Suc m mod n = Suc (m mod n) mod n"
  1299   "Suc m mod n = Suc (m mod n) mod n"
  1304   by (simp add: mod_simps)
  1300   by (simp add: mod_simps)
  1305 
  1301 
  1306 lemma div_geq:
  1302 lemma div_geq:
  1325   from div_mult_mod_eq obtain q where "q * d + m mod d = m" by blast
  1321   from div_mult_mod_eq obtain q where "q * d + m mod d = m" by blast
  1326   with assms have "m = r + q * d" by simp
  1322   with assms have "m = r + q * d" by simp
  1327   then show ?thesis ..
  1323   then show ?thesis ..
  1328 qed
  1324 qed
  1329 
  1325 
  1330 lemmas even_times_iff = even_mult_iff \<comment> \<open>FIXME duplicate\<close>
       
  1331 
       
  1332 lemma mod_2_not_eq_zero_eq_one_nat:
       
  1333   fixes n :: nat
       
  1334   shows "n mod 2 \<noteq> 0 \<longleftrightarrow> n mod 2 = 1"
       
  1335   by (fact not_mod_2_eq_0_eq_1)
       
  1336 
       
  1337 lemma even_int_iff [simp]: "even (int n) \<longleftrightarrow> even n"
       
  1338   by (fact even_of_nat)
       
  1339 
       
  1340 lemma is_unit_int:
  1326 lemma is_unit_int:
  1341   "is_unit (k::int) \<longleftrightarrow> k = 1 \<or> k = - 1"
  1327   "is_unit (k::int) \<longleftrightarrow> k = 1 \<or> k = - 1"
  1342   by auto
  1328   by auto
  1343 
  1329 
  1344 end
  1330 end