renamed le_0 to le_0_eq, to avoid confusion with le0,
authoroheimb
Fri, 31 May 1996 19:34:40 +0200
changeset 1777 47c47b7d7aa8
parent 1776 d7e77cb8ce5c
child 1778 6c942cf3bf68
renamed le_0 to le_0_eq, to avoid confusion with le0, supplied an experimental thm Suc_le_eq, but commented it out
src/HOL/Nat.ML
--- a/src/HOL/Nat.ML	Fri May 31 19:12:00 1996 +0200
+++ b/src/HOL/Nat.ML	Fri May 31 19:34:40 1996 +0200
@@ -338,15 +338,6 @@
 qed "Suc_mono";
 
 
-(*
-goal Nat.thy "(Suc m < n | Suc m = n) = (m < n)";
-
-
-goal Nat.thy "(Suc(m) < Suc(n)) = (m<n)";
-by(stac less_Suc_eq 1);
-by(rtac 
-*)
-
 goal Nat.thy "(Suc(m) < Suc(n)) = (m<n)";
 by (EVERY1 [rtac iffI, etac Suc_less_SucD, etac Suc_mono]);
 qed "Suc_less_eq";
@@ -411,14 +402,24 @@
 goalw Nat.thy [le_def] "(i <= 0) = (i = 0)";
 by (nat_ind_tac "i" 1);
 by (ALLGOALS Asm_simp_tac);
-qed "le_0";
+qed "le_0_eq";
 
 Addsimps [less_not_refl,
-          (*less_Suc_eq,*) le0, le_0,
+          (*less_Suc_eq, makes simpset non-confluent*) le0, le_0_eq,
           Suc_Suc_eq, Suc_n_not_le_n,
           n_not_Suc_n, Suc_n_not_n,
           nat_case_0, nat_case_Suc, nat_rec_0, nat_rec_Suc];
 
+(*
+goal Nat.thy "(Suc m < n | Suc m = n) = (m < n)";
+by(stac (less_Suc_eq RS sym) 1);
+by(rtac Suc_less_eq 1);
+qed "Suc_le_eq";
+
+this could make the simpset (with less_Suc_eq added again) more confluent,
+but less_Suc_eq makes additional problems with terms of the form 0 < Suc (...)
+*)
+
 (*Prevents simplification of f and g: much faster*)
 qed_goal "nat_case_weak_cong" Nat.thy
   "m=n ==> nat_case a f m = nat_case a f n"