LFex.thy
changeset 414 4dad34ca50db
parent 400 7ef153ded7e2
child 416 3f3927f793d4
--- a/LFex.thy	Fri Nov 27 04:02:20 2009 +0100
+++ b/LFex.thy	Fri Nov 27 07:00:14 2009 +0100
@@ -263,8 +263,7 @@
     val simproc = Simplifier.simproc_i thy "" pat (K (ball_simproc rel_eqvs))
   in
   (ObjectLogic.full_atomize_tac) THEN'
-  (simp_tac (((Simplifier.context ctxt empty_ss) addsimps subs) addsimprocs [simproc])) 
-  THEN'
+  (simp_tac (((Simplifier.context ctxt empty_ss) addsimps subs) addsimprocs [simproc])) THEN'
   REPEAT_ALL_NEW (FIRST' [
     (rtac @{thm RIGHT_RES_FORALL_REGULAR}),
     (rtac @{thm LEFT_RES_EXISTS_REGULAR}),
@@ -274,7 +273,8 @@
     (rtac @{thm bex_respects_refl} THEN' (RANGE [SOLVES' (equiv_tac rel_eqvs)])),
     (resolve_tac (Inductive.get_monos ctxt)),
     rtac @{thm move_forall},
-    rtac @{thm move_exists}
+    rtac @{thm move_exists},
+    (simp_tac (((Simplifier.context ctxt empty_ss) addsimps subs) addsimprocs [simproc]))
   ])
   end
 *}
@@ -300,95 +300,9 @@
    ((x3 ::TY) = x4 \<longrightarrow> P2 x3 x4) \<and> ((x5 :: TRM) = x6 \<longrightarrow> P3 x5 x6)"
 apply(tactic {* procedure_tac @{context} @{thm akind_aty_atrm.induct} 1 *})
 apply(tactic {* regularize_tac @{context} @{thms alpha_EQUIVs} 1 *})
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-
-apply(rule LEFT_RES_FORALL_REGULAR)
-apply(tactic {* (simp_tac ((Simplifier.context @{context} empty_ss) addsimps (subs1))) 1 *})
-apply(atomize (full))
-apply(rule RIGHT_RES_FORALL_REGULAR)
-apply(rule RIGHT_RES_FORALL_REGULAR)
-apply(rule RIGHT_RES_FORALL_REGULAR)
-apply(rule test)
-defer
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})+
-apply(rule test)
-defer
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})+
-apply(rule move_quant)
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})+
-apply(rule move_quant)
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})+
-apply(rule move_quant)
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})+
-apply(rule test)
-defer
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})+
-
-
-thm test[OF mp]
-
-
 prefer 2
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})+
-apply(thin_tac "Respects (akind ===> akind ===> op =) x") 
-apply(thin_tac "Respects (aty ===> aty ===> op =) xa")
-apply(thin_tac "Respects (atrm ===> atrm ===> op =) xb")
-apply (simp add: Ball_def IN_RESPECTS Respects_def)
-apply (metis COMBK_def al_refl(3))
-
-apply(rule LEFT_RES_FORALL_REGULAR)
-apply(rule conjI)
-prefer 2
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})+
-using al_refl
-apply(simp add: Respects_def)
-
-
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply (simp add: Ball_def IN_RESPECTS Respects_def)
-apply (metis COMBK_def al_refl(3))
-
-apply(rule impI) apply(assumption)
-apply(rule Set.imp_mono)
-apply(rule impI) apply(assumption)
-apply(rule Set.imp_mono)
-apply(rule impI) apply(assumption)
-apply(rule Set.imp_mono)
-apply(rule impI) apply(assumption)
-apply(rule Set.imp_mono)
-apply(rule impI) apply(assumption)
-apply(rule Set.imp_mono)
-apply(rule impI) apply(assumption)
-apply(rule Set.imp_mono)
-apply(rule impI) apply(assumption)
-apply(rule Set.imp_mono)
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply (simp add: Ball_def IN_RESPECTS Respects_def)
-apply (metis COMBK_def al_refl(3))
-apply(rule Set.imp_mono)
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply (simp add: Ball_def IN_RESPECTS Respects_def)
-apply (metis COMBK_def al_refl(3))
-apply(rule Set.imp_mono)
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(rule move_quant)
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(rule move_quant)
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply(rule move_quant)
-apply(tactic {* resolve_tac (Inductive.get_monos @{context}) 1 *})
-apply (simp add: Ball_def IN_RESPECTS Respects_def)
-apply (metis COMBK_def al_refl(3))
-apply(rule impI) apply(assumption)
+apply(tactic {* r_mk_comb_tac' @{context} rty quot rel_refl trans2 rsp_thms 1*})
+apply (tactic {* clean_tac @{context} quot defs reps_same absrep 1 *})
 
 ML {*
 val rty_qty_rel =