Must remove less_imp_le from simpset
authorpaulson
Thu, 20 Aug 1998 16:18:39 +0200
changeset 53485f6416d64a94
parent 5347 d014d7e57337
child 5349 eab069aa1ad0
Must remove less_imp_le from simpset
src/HOL/MiniML/W.ML
src/HOL/W0/W.ML
     1.1 --- a/src/HOL/MiniML/W.ML	Thu Aug 20 10:17:18 1998 +0200
     1.2 +++ b/src/HOL/MiniML/W.ML	Thu Aug 20 16:18:39 1998 +0200
     1.3 @@ -8,7 +8,7 @@
     1.4  
     1.5  open W;
     1.6  
     1.7 -Addsimps [diff_add_inverse,diff_add_inverse2,Suc_le_lessD];
     1.8 +Addsimps [Suc_le_lessD];  Delsimps [less_imp_le];  (*the combination loops*)
     1.9  
    1.10  val has_type_casesE = map(has_type.mk_cases expr.simps)
    1.11          [" A |- Var n :: t"," A |- Abs e :: t","A |- App e1 e2 ::t","A |- LET e1 e2 ::t" ];
     2.1 --- a/src/HOL/W0/W.ML	Thu Aug 20 10:17:18 1998 +0200
     2.2 +++ b/src/HOL/W0/W.ML	Thu Aug 20 16:18:39 1998 +0200
     2.3 @@ -6,7 +6,8 @@
     2.4  Correctness and completeness of type inference algorithm W
     2.5  *)
     2.6  
     2.7 -Addsimps [Suc_le_lessD];
     2.8 +Addsimps [Suc_le_lessD];  Delsimps [less_imp_le];  (*the combination loops*)
     2.9 +
    2.10  Delsimps (ex_simps @ all_simps);
    2.11  
    2.12  (* correctness of W with respect to has_type *)
    2.13 @@ -82,8 +83,7 @@
    2.14  
    2.15  
    2.16  (* resulting type variable is new *)
    2.17 -Goal
    2.18 -     "!n a s t m. new_tv n a --> W e a n = Ok (s,t,m) -->    \
    2.19 +Goal "!n a s t m. new_tv n a --> W e a n = Ok (s,t,m) -->    \
    2.20  \                 new_tv m s & new_tv m t";
    2.21  by (induct_tac "e" 1);
    2.22  (* case Var n *)
    2.23 @@ -213,8 +213,7 @@
    2.24  qed_spec_mp "free_tv_W"; 
    2.25  
    2.26  (* Completeness of W w.r.t. has_type *)
    2.27 -Goal
    2.28 - "!s' a t' n. $s' a |- e :: t' --> new_tv n a -->     \
    2.29 +Goal "!s' a t' n. $s' a |- e :: t' --> new_tv n a -->     \
    2.30  \             (? s t. (? m. W e a n = Ok (s,t,m)) &  \
    2.31  \                     (? r. $s' a = $r ($s a) & t' = $r t))";
    2.32  by (induct_tac "e" 1);