diff -r ca0b28863ca9 -r c0d13b337c66 QuotMain.thy --- a/QuotMain.thy Thu Oct 22 16:10:06 2009 +0200 +++ b/QuotMain.thy Thu Oct 22 16:24:02 2009 +0200 @@ -1024,6 +1024,15 @@ *} ML {* +fun res_forall_rsp_tac ctxt = + (simp_tac ((Simplifier.context ctxt HOL_ss) addsimps @{thms FUN_REL.simps})) + THEN' rtac @{thm allI} THEN' rtac @{thm allI} THEN' rtac @{thm impI} + THEN' instantiate_tac @{thm RES_FORALL_RSP} ctxt THEN' + (simp_tac ((Simplifier.context ctxt HOL_ss) addsimps @{thms FUN_REL.simps})) +*} + + +ML {* fun r_mk_comb_tac ctxt quot_thm reflex_thm trans_thm = (FIRST' [ rtac @{thm FUN_QUOTIENT}, @@ -1031,6 +1040,7 @@ rtac @{thm IDENTITY_QUOTIENT}, rtac @{thm ext}, rtac trans_thm, + res_forall_rsp_tac ctxt, instantiate_tac @{thm REP_ABS_RSP(1)} ctxt, instantiate_tac @{thm APPLY_RSP} ctxt, rtac reflex_thm, @@ -1056,12 +1066,7 @@ apply (tactic {* r_mk_comb_tac_fset @{context} 1 *}) apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_fset @{context}) 1 *}) apply (tactic {* r_mk_comb_tac_fset @{context} 1 *}) -apply (simp only: FUN_REL.simps) -apply (rule allI) -apply (rule allI) -apply (rule impI) -apply (tactic {* instantiate_tac @{thm RES_FORALL_RSP} @{context} 1 *}) -apply (simp only: FUN_REL.simps) +apply (tactic {* r_mk_comb_tac_fset @{context} 1 *}) apply (tactic {* r_mk_comb_tac_fset @{context} 1 *}) apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_fset @{context}) 1 *}) (* LAMBDA_RES_TAC *) @@ -1092,12 +1097,7 @@ apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_fset @{context}) 1 *}) apply (tactic {* r_mk_comb_tac_fset @{context} 1 *}) (* ABS_REP_RSP *) -apply (simp only: FUN_REL.simps) -apply (rule allI) -apply (rule allI) -apply (rule impI) -apply (tactic {* instantiate_tac @{thm RES_FORALL_RSP} @{context} 1 *}) -apply (simp only: FUN_REL.simps) +apply (tactic {* r_mk_comb_tac_fset @{context} 1 *}) apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_fset @{context}) 1 *}) (* LAMBDA_RSP *) apply (simp only: FUN_REL.simps) @@ -1150,12 +1150,7 @@ apply (tactic {* r_mk_comb_tac_fset @{context} 1 *}) apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_fset @{context}) 1 *}) apply (tactic {* r_mk_comb_tac_fset @{context} 1 *}) -apply (simp only: FUN_REL.simps) -apply (rule allI) -apply (rule allI) -apply (rule impI) -apply (tactic {* instantiate_tac @{thm RES_FORALL_RSP} @{context} 1 *}) -apply (simp only: FUN_REL.simps) +apply (tactic {* r_mk_comb_tac_fset @{context} 1 *}) apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_fset @{context}) 1 *}) apply (simp only: FUN_REL.simps) apply (rule allI)