# HG changeset patch # User Cezary Kaliszyk # Date 1259070107 -3600 # Node ID e9bcbdeb3a1ed185190110706f40d5f33766f194 # Parent 07fb696efa3d357a610d25c3aa24324aa92da408 TRY' for clean_tac diff -r 07fb696efa3d -r e9bcbdeb3a1e QuotMain.thy --- a/QuotMain.thy Tue Nov 24 14:19:54 2009 +0100 +++ b/QuotMain.thy Tue Nov 24 14:41:47 2009 +0100 @@ -1578,17 +1578,30 @@ *} ML {* + fun TRY' tac = fn i => TRY (tac i) +*} + +ML {* fun clean_tac lthy quot defs reps_same = let val lower = flat (map (add_lower_defs lthy) defs) in - (REPEAT_ALL_NEW (allex_prs_tac lthy quot)) THEN' - (REPEAT_ALL_NEW (lambda_prs_tac lthy quot)) THEN' - (REPEAT_ALL_NEW (EqSubst.eqsubst_tac lthy [0] lower)) THEN' - (simp_tac (HOL_ss addsimps [reps_same])) + TRY' (REPEAT_ALL_NEW (allex_prs_tac lthy quot)) THEN' + TRY' (REPEAT_ALL_NEW (lambda_prs_tac lthy quot)) THEN' + TRY' (REPEAT_ALL_NEW (EqSubst.eqsubst_tac lthy [0] lower)) THEN' + simp_tac (HOL_ss addsimps [reps_same]) end *} +ML {* +fun lift_tac lthy thm rel_eqv rel_refl rty quot trans2 rsp_thms reps_same defs = + (procedure_tac thm lthy) THEN' + (regularize_tac lthy rel_eqv rel_refl) THEN' + (REPEAT_ALL_NEW (r_mk_comb_tac lthy rty quot rel_refl trans2 rsp_thms)) THEN' + (clean_tac lthy quot defs reps_same) +*} + + end