removal of rewrites for Suc(Suc(Suc...)))
authorpaulson
Mon, 19 Jul 1999 15:29:01 +0200
changeset 7033 c7479ae352b1
parent 7032 d6efb3b8e669
child 7034 99e012d61eef
removal of rewrites for Suc(Suc(Suc...)))
src/HOL/Integ/Bin.ML
--- a/src/HOL/Integ/Bin.ML	Mon Jul 19 15:27:34 1999 +0200
+++ b/src/HOL/Integ/Bin.ML	Mon Jul 19 15:29:01 1999 +0200
@@ -386,8 +386,9 @@
 
 (** Less-than-or-equals (<=) **)
 
-Goal "(number_of x <= (number_of y::int)) = (~ number_of y < (number_of x::int))";
-by (simp_tac (simpset() addsimps [zle_def]) 1);
+Goal "(number_of x <= (number_of y::int)) = \
+\     (~ number_of y < (number_of x::int))";
+by (rtac (linorder_not_less RS sym) 1);
 qed "le_number_of_eq_not_less"; 
 
 (*Delete the original rewrites, with their clumsy conditional expressions*)
@@ -674,6 +675,10 @@
 
 Addsimps [nat_0_le, nat_le_0];
 
+val [major,minor] = Goal "[| #0 <= z;  !!m. z = int m ==> P |] ==> P"; 
+by (rtac (major RS nat_0_le RS sym RS minor) 1);
+qed "nonneg_eq_int"; 
+
 Goal "#0 <= w ==> (nat w = m) = (w = int m)";
 by Auto_tac;
 qed "nat_eq_iff";
@@ -702,39 +707,6 @@
 by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
 qed "nat_2";
 
-Goal "nat #3 = Suc 2";
-by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
-qed "nat_3";
-
-Goal "nat #4 = Suc (Suc 2)";
-by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
-qed "nat_4";
-
-Goal "nat #5 = Suc (Suc (Suc 2))";
-by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
-qed "nat_5";
-
-Goal "nat #6 = Suc (Suc (Suc (Suc 2)))";
-by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
-qed "nat_6";
-
-Goal "nat #7 = Suc (Suc (Suc (Suc (Suc 2))))";
-by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
-qed "nat_7";
-
-Goal "nat #8 = Suc (Suc (Suc (Suc (Suc (Suc 2)))))";
-by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
-qed "nat_8";
-
-Goal "nat #9 = Suc (Suc (Suc (Suc (Suc (Suc (Suc 2))))))";
-by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
-qed "nat_9";
-
-(*Users also don't want to see (nat 0), (nat 1), ...*)
-Addsimps [nat_0, nat_1, nat_2, nat_3, nat_4, 
-	  nat_5, nat_6, nat_7, nat_8, nat_9];
-
-
 Goal "#0 <= w ==> (nat w < nat z) = (w<z)";
 by (case_tac "neg z" 1);
 by (auto_tac (claset(), simpset() addsimps [nat_less_iff]));