# HG changeset patch # User huffman # Date 1228369836 28800 # Node ID 3bdb1eae352c25a2fc84920ccaeca1c28128646b # Parent f6d9e0e0b15322b72a14ff292ecc2e80af06863e enable eq_bin_simps for simplifying equalities on numerals diff -r f6d9e0e0b153 -r 3bdb1eae352c src/HOL/Int.thy --- 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}) \ number_of y \ x \ 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 \ 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 diff -r f6d9e0e0b153 -r 3bdb1eae352c src/HOL/Library/Float.thy --- 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: "\ (neg (Numeral0::int))" by simp diff -r f6d9e0e0b153 -r 3bdb1eae352c src/HOL/Presburger.thy --- 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 \ n dvd m" unfolding dvd_eq_mod_eq_0[symmetric] ..