src/HOL/Library/Target_Numeral.thy
changeset 47159 978c00c20a59
parent 47108 2a1953f0d20d
child 47217 501b9bbd0d6e
equal deleted inserted replaced
47142:d64fa2ca54b8 47159:978c00c20a59
   294   have aux1: "\<And>k l::int. sgn k = sgn l \<longleftrightarrow> k = 0 \<and> l = 0 \<or> 0 < l \<and> 0 < k \<or> l < 0 \<and> k < 0"
   294   have aux1: "\<And>k l::int. sgn k = sgn l \<longleftrightarrow> k = 0 \<and> l = 0 \<or> 0 < l \<and> 0 < k \<or> l < 0 \<and> k < 0"
   295     by (auto simp add: sgn_if)
   295     by (auto simp add: sgn_if)
   296   have aux2: "\<And>q::int. - int_of k = int_of l * q \<longleftrightarrow> int_of k = int_of l * - q" by auto
   296   have aux2: "\<And>q::int. - int_of k = int_of l * q \<longleftrightarrow> int_of k = int_of l * - q" by auto
   297   show ?thesis
   297   show ?thesis
   298     by (simp add: prod_eq_iff Target_Numeral.int_eq_iff prod_case_beta aux1)
   298     by (simp add: prod_eq_iff Target_Numeral.int_eq_iff prod_case_beta aux1)
   299       (auto simp add: zdiv_zminus1_eq_if zmod_zminus1_eq_if zdiv_zminus2 zmod_zminus2 aux2)
   299       (auto simp add: zdiv_zminus1_eq_if zmod_zminus1_eq_if div_minus_right mod_minus_right aux2)
   300 qed
   300 qed
   301 
   301 
   302 lemma div_int_code [code]:
   302 lemma div_int_code [code]:
   303   "k div l = fst (divmod k l)"
   303   "k div l = fst (divmod k l)"
   304   by simp
   304   by simp