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