removal of rewrites for Suc(Suc(Suc...)))
authorpaulson
Mon, 19 Jul 1999 15:29:01 +0200
changeset 7033c7479ae352b1
parent 7032 d6efb3b8e669
child 7034 99e012d61eef
removal of rewrites for Suc(Suc(Suc...)))
src/HOL/Integ/Bin.ML
     1.1 --- a/src/HOL/Integ/Bin.ML	Mon Jul 19 15:27:34 1999 +0200
     1.2 +++ b/src/HOL/Integ/Bin.ML	Mon Jul 19 15:29:01 1999 +0200
     1.3 @@ -386,8 +386,9 @@
     1.4  
     1.5  (** Less-than-or-equals (<=) **)
     1.6  
     1.7 -Goal "(number_of x <= (number_of y::int)) = (~ number_of y < (number_of x::int))";
     1.8 -by (simp_tac (simpset() addsimps [zle_def]) 1);
     1.9 +Goal "(number_of x <= (number_of y::int)) = \
    1.10 +\     (~ number_of y < (number_of x::int))";
    1.11 +by (rtac (linorder_not_less RS sym) 1);
    1.12  qed "le_number_of_eq_not_less"; 
    1.13  
    1.14  (*Delete the original rewrites, with their clumsy conditional expressions*)
    1.15 @@ -674,6 +675,10 @@
    1.16  
    1.17  Addsimps [nat_0_le, nat_le_0];
    1.18  
    1.19 +val [major,minor] = Goal "[| #0 <= z;  !!m. z = int m ==> P |] ==> P"; 
    1.20 +by (rtac (major RS nat_0_le RS sym RS minor) 1);
    1.21 +qed "nonneg_eq_int"; 
    1.22 +
    1.23  Goal "#0 <= w ==> (nat w = m) = (w = int m)";
    1.24  by Auto_tac;
    1.25  qed "nat_eq_iff";
    1.26 @@ -702,39 +707,6 @@
    1.27  by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
    1.28  qed "nat_2";
    1.29  
    1.30 -Goal "nat #3 = Suc 2";
    1.31 -by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
    1.32 -qed "nat_3";
    1.33 -
    1.34 -Goal "nat #4 = Suc (Suc 2)";
    1.35 -by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
    1.36 -qed "nat_4";
    1.37 -
    1.38 -Goal "nat #5 = Suc (Suc (Suc 2))";
    1.39 -by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
    1.40 -qed "nat_5";
    1.41 -
    1.42 -Goal "nat #6 = Suc (Suc (Suc (Suc 2)))";
    1.43 -by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
    1.44 -qed "nat_6";
    1.45 -
    1.46 -Goal "nat #7 = Suc (Suc (Suc (Suc (Suc 2))))";
    1.47 -by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
    1.48 -qed "nat_7";
    1.49 -
    1.50 -Goal "nat #8 = Suc (Suc (Suc (Suc (Suc (Suc 2)))))";
    1.51 -by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
    1.52 -qed "nat_8";
    1.53 -
    1.54 -Goal "nat #9 = Suc (Suc (Suc (Suc (Suc (Suc (Suc 2))))))";
    1.55 -by (simp_tac (simpset() addsimps [nat_eq_iff]) 1);
    1.56 -qed "nat_9";
    1.57 -
    1.58 -(*Users also don't want to see (nat 0), (nat 1), ...*)
    1.59 -Addsimps [nat_0, nat_1, nat_2, nat_3, nat_4, 
    1.60 -	  nat_5, nat_6, nat_7, nat_8, nat_9];
    1.61 -
    1.62 -
    1.63  Goal "#0 <= w ==> (nat w < nat z) = (w<z)";
    1.64  by (case_tac "neg z" 1);
    1.65  by (auto_tac (claset(), simpset() addsimps [nat_less_iff]));