equal
deleted
inserted
replaced
499 "even a \<longleftrightarrow> a mod 2 = 0" |
499 "even a \<longleftrightarrow> a mod 2 = 0" |
500 by (fact dvd_eq_mod_eq_0) |
500 by (fact dvd_eq_mod_eq_0) |
501 |
501 |
502 lemma odd_iff_mod_2_eq_one: |
502 lemma odd_iff_mod_2_eq_one: |
503 "odd a \<longleftrightarrow> a mod 2 = 1" |
503 "odd a \<longleftrightarrow> a mod 2 = 1" |
504 by (auto simp add: even_iff_mod_2_eq_zero) |
504 by (simp add: even_iff_mod_2_eq_zero) |
505 |
505 |
506 lemma even_succ_div_two [simp]: |
506 lemma even_succ_div_two [simp]: |
507 "even a \<Longrightarrow> (a + 1) div 2 = a div 2" |
507 "even a \<Longrightarrow> (a + 1) div 2 = a div 2" |
508 by (cases "a = 0") (auto elim!: evenE dest: mult_not_zero) |
508 by (cases "a = 0") (auto elim!: evenE dest: mult_not_zero) |
509 |
509 |
1851 shows "(sgn v * \<bar>k\<bar>) div (sgn v * \<bar>l\<bar>) = \<bar>k\<bar> div \<bar>l\<bar>" |
1851 shows "(sgn v * \<bar>k\<bar>) div (sgn v * \<bar>l\<bar>) = \<bar>k\<bar> div \<bar>l\<bar>" |
1852 proof - |
1852 proof - |
1853 from assms have "sgn v = - 1 \<or> sgn v = 1" |
1853 from assms have "sgn v = - 1 \<or> sgn v = 1" |
1854 by (cases "v \<ge> 0") auto |
1854 by (cases "v \<ge> 0") auto |
1855 then show ?thesis |
1855 then show ?thesis |
1856 using assms unfolding divide_int_def [of "sgn v * \<bar>k\<bar>" "sgn v * \<bar>l\<bar>"] |
1856 using assms unfolding divide_int_def [of "sgn v * \<bar>k\<bar>" "sgn v * \<bar>l\<bar>"] |
1857 by (auto simp add: not_less div_abs_eq_div_nat) |
1857 by (fastforce simp add: not_less div_abs_eq_div_nat) |
1858 qed |
1858 qed |
1859 |
1859 |
1860 lemma div_eq_sgn_abs: |
1860 lemma div_eq_sgn_abs: |
1861 fixes k l v :: int |
1861 fixes k l v :: int |
1862 assumes "sgn k = sgn l" |
1862 assumes "sgn k = sgn l" |
2029 |
2029 |
2030 lemma zminus1_lemma: |
2030 lemma zminus1_lemma: |
2031 "eucl_rel_int a b (q, r) ==> b \<noteq> 0 |
2031 "eucl_rel_int a b (q, r) ==> b \<noteq> 0 |
2032 ==> eucl_rel_int (-a) b (if r=0 then -q else -q - 1, |
2032 ==> eucl_rel_int (-a) b (if r=0 then -q else -q - 1, |
2033 if r=0 then 0 else b-r)" |
2033 if r=0 then 0 else b-r)" |
2034 by (force simp add: split_ifs eucl_rel_int_iff linorder_neq_iff right_diff_distrib) |
2034 by (force simp add: eucl_rel_int_iff right_diff_distrib) |
2035 |
2035 |
2036 |
2036 |
2037 lemma zdiv_zminus1_eq_if: |
2037 lemma zdiv_zminus1_eq_if: |
2038 "b \<noteq> (0::int) |
2038 "b \<noteq> (0::int) |
2039 ==> (-a) div b = |
2039 ==> (-a) div b = |