--- a/src/HOL/Int.thy Wed Dec 03 21:00:39 2008 -0800
+++ b/src/HOL/Int.thy Wed Dec 03 21:50:36 2008 -0800
@@ -1307,10 +1307,15 @@
"(number_of x::'a::{ordered_idom,number_ring}) \<le> number_of y \<longleftrightarrow> x \<le> y"
unfolding number_of_eq by (rule of_int_le_iff)
+lemma eq_number_of [simp]:
+ "(number_of x::'a::{ring_char_0,number_ring}) = number_of y \<longleftrightarrow> x = y"
+ unfolding number_of_eq by (rule of_int_eq_iff)
+
lemmas rel_simps [simp] =
less_number_of less_bin_simps
le_number_of le_bin_simps
- eq_number_of_eq iszero_0 nonzero_number_of_Min
+ eq_number_of eq_bin_simps
+ iszero_0 nonzero_number_of_Min
iszero_number_of_Bit0 iszero_number_of_Bit1
not_neg_number_of_Pls not_neg_0 not_neg_1 not_iszero_1
neg_number_of_Min neg_number_of_Bit0 neg_number_of_Bit1
--- a/src/HOL/Library/Float.thy Wed Dec 03 21:00:39 2008 -0800
+++ b/src/HOL/Library/Float.thy Wed Dec 03 21:50:36 2008 -0800
@@ -499,7 +499,7 @@
lemma int_eq_number_of_eq:
"(((number_of v)::int)=(number_of w)) = iszero ((number_of (v + uminus w))::int)"
- by simp
+ by (rule eq_number_of_eq)
lemma int_iszero_number_of_Pls: "iszero (Numeral0::int)"
by (simp only: iszero_number_of_Pls)
@@ -514,7 +514,7 @@
by simp
lemma int_less_number_of_eq_neg: "(((number_of x)::int) < number_of y) = neg ((number_of (x + (uminus y)))::int)"
- unfolding neg_def number_of_is_id by simp
+ by (rule less_number_of_eq_neg)
lemma int_not_neg_number_of_Pls: "\<not> (neg (Numeral0::int))"
by simp
--- a/src/HOL/Presburger.thy Wed Dec 03 21:00:39 2008 -0800
+++ b/src/HOL/Presburger.thy Wed Dec 03 21:50:36 2008 -0800
@@ -411,7 +411,7 @@
by (simp cong: conj_cong)
lemma int_eq_number_of_eq:
"(((number_of v)::int) = (number_of w)) = iszero ((number_of (v + (uminus w)))::int)"
- by simp
+ by (rule eq_number_of_eq)
lemma mod_eq0_dvd_iff[presburger]: "(m::nat) mod n = 0 \<longleftrightarrow> n dvd m"
unfolding dvd_eq_mod_eq_0[symmetric] ..