Simplified a few proofs because of improved simplification.
authornipkow
Wed, 23 Jul 1997 17:44:15 +0200
changeset 3569 4467015d5080
parent 3568 36ff1ab12021
child 3570 d3662f90c453
Simplified a few proofs because of improved simplification.
src/HOL/W0/I.ML
src/HOL/W0/W.ML
--- a/src/HOL/W0/I.ML	Wed Jul 23 17:43:42 1997 +0200
+++ b/src/HOL/W0/I.ML	Wed Jul 23 17:44:15 1997 +0200
@@ -98,7 +98,7 @@
 by (mp_tac 1);
 by (REPEAT (eresolve_tac [exE,conjE] 1));
 by (REPEAT(EVERY1
-     [asm_full_simp_tac (!simpset addsimps [subst_comp_tel,subst_comp_te]),
+     [asm_full_simp_tac (!simpset addsimps [subst_comp_tel,subst_comp_te,o_def]),
       REPEAT o etac conjE, hyp_subst_tac]));
 (** LEVEL 70 **)
 by (subgoal_tac "new_tv n2 s & new_tv n2 r & new_tv n2 ra" 1);
@@ -139,6 +139,8 @@
 
 val lemma = I_correct_wrt_W COMP swap_prems_rl;
 
+Addsimps [split_paired_Ex];
+
 goal I.thy "!a m s. \
 \  new_tv m a & new_tv m s --> I e a m s = Fail --> W e ($s a) m = Fail";
 by (expr.induct_tac "e" 1);
@@ -146,35 +148,28 @@
                         setloop (split_tac [expand_if])) 1);
  by (Simp_tac 1);
  by (strip_tac 1);
- by (rtac conjI 1);
-  by (strip_tac 1);
-  by (subgoal_tac "TVar m # $ s a = $s(TVar m # a)" 1);
-   by (asm_simp_tac (HOL_ss addsimps
+ by (subgoal_tac "TVar m # $ s a = $s(TVar m # a)" 1);
+  by (asm_simp_tac (HOL_ss addsimps
         [new_tv_Suc_list, lessI RS less_imp_le RS new_tv_subst_le]) 1);
-  by (etac conjE 1);
-  by (dtac (new_tv_not_free_tv RS not_free_impl_id) 1);
-  by (Asm_simp_tac 1);
- by (strip_tac 1);
- by (etac exE 1);
- by (split_all_tac 1);
- by (Full_simp_tac 1);
-(** LEVEL 15 **)
+ by (etac conjE 1);
+ by (dtac (new_tv_not_free_tv RS not_free_impl_id) 1);
+ by (Asm_simp_tac 1);
+(** LEVEL 9 **)
 by (Asm_simp_tac 1);
 by (strip_tac 1);
-by (etac exE 1);
+by (REPEAT(etac exE 1));
 by (REPEAT(etac conjE 1));
-by (split_all_tac 1);
-by (Full_simp_tac 1);
 by (dtac lemma 1);
  by (fast_tac HOL_cs 1);
-(** LEVEL 23 **)
+(** LEVEL 15 **)
 by (etac exE 1);
 by (etac conjE 1);
 by (hyp_subst_tac 1);
 by (Asm_simp_tac 1);
+by (REPEAT(resolve_tac [exI,conjI,refl] 1));
 by (etac disjE 1);
  by (rtac disjI1 1);
-(** LEVEL 29 **)
+(** LEVEL 22 **)
  by (full_simp_tac (!simpset addsimps [o_def,subst_comp_tel]) 1);
  by (EVERY[etac allE 1, etac allE 1, etac allE 1,
           etac impE 1, etac impE 2, atac 2, atac 2]);
@@ -184,21 +179,19 @@
   by (fast_tac (HOL_cs addIs [W_var_ge RS new_tv_subst_le]) 1);
  by (fast_tac (HOL_cs addSIs [new_tv_subst_tel]addIs[new_tv_W RS conjunct1])1);
 by (rtac disjI2 1);
-by (etac exE 1);
-by (split_all_tac 1);
+by (REPEAT(etac exE 1));
 by (etac conjE 1);
-(** LEVEL 40 **)
-by (Full_simp_tac 1);
+(** LEVEL 32 **)
 by (dtac lemma 1);
  by (rtac conjI 1);
   by (fast_tac (HOL_cs addIs [W_var_ge RS new_tv_list_le]) 1);
  by (rtac new_tv_subst_comp_1 1);
-   by (fast_tac (HOL_cs addIs [W_var_ge RS new_tv_subst_le]) 1);
+  by (fast_tac (HOL_cs addIs [W_var_ge RS new_tv_subst_le]) 1);
  by (fast_tac (HOL_cs addSIs [new_tv_subst_tel]addIs[new_tv_W RS conjunct1])1);
 by (etac exE 1);
 by (etac conjE 1);
 by (hyp_subst_tac 1);
-(** LEVEL 50 **)
+(** LEVEL 41 **)
 by (asm_full_simp_tac (!simpset addsimps
      [o_def,subst_comp_te RS sym,subst_comp_tel RS sym]) 1);
 qed_spec_mp "I_complete_wrt_W";
--- a/src/HOL/W0/W.ML	Wed Jul 23 17:43:42 1997 +0200
+++ b/src/HOL/W0/W.ML	Wed Jul 23 17:44:15 1997 +0200
@@ -230,9 +230,6 @@
               setloop (split_tac [expand_if])) 1);
 by (eresolve_tac has_type_casesE 1); 
 by (asm_full_simp_tac (!simpset addsimps [eq_sym_conv,app_subst_list]) 1);
-by (res_inst_tac [("x","id_subst")] exI 1);
-by (res_inst_tac [("x","nth nat a")] exI 1);
-by (Simp_tac 1);
 by (res_inst_tac [("x","s'")] exI 1);
 by (Asm_simp_tac 1);
 
@@ -337,9 +334,6 @@
 by (safe_tac HOL_cs);
 by (dtac mgu_Ok 1);
 by ( fast_tac (HOL_cs addss !simpset) 1);
-by (REPEAT (resolve_tac [exI,conjI] 1));
-by (fast_tac HOL_cs 1);
-by (fast_tac HOL_cs 1);
 by ((dtac mgu_mg 1) THEN (atac 1));
 by (etac exE 1);
 by (res_inst_tac [("x","rb")] exI 1);