diff -r 42a2cac76c41 -r efb427ae04c9 QuotMain.thy --- a/QuotMain.thy Wed Oct 21 10:30:29 2009 +0200 +++ b/QuotMain.thy Wed Oct 21 10:55:32 2009 +0200 @@ -1359,8 +1359,15 @@ val m = Thm.match (tc', gc') *} (* FAILS: t2 = Drule.instantiate m @{thm "APPLY_RSP_II" }; rtac t2 1 *) -(* Works but why does it take a string? *} -apply (tactic {* res_inst_tac @{context} [(("f",0),"\x. h # x"),(("g",0),"\x. h # x")] @{thm "APPLY_RSP_II" } 1 *}) +(* Works but why does it take a string? *) +ML_prf {* + val t_inst = snd m; + val t_insts = map (fn (a, b) => (fst (dest_Var (term_of a)), (Syntax.string_of_term @{context} (term_of b)))) t_inst + +*} +ML_prf dest_Var +apply (tactic {* res_inst_tac @{context} [(("f",0),"op # h"),(("g",0),"op # h")] @{thm "APPLY_RSP_II" } 1 *}) +ML_prf induct_tac (*apply (rule_tac ?f="\x. h # x" and ?g="\x. h # x" in APPLY_RSP[of "op \" "ABS_fset" "REP_fset" "op \" "ABS_fset" "REP_fset"] )*) apply (rule QUOTIENT_fset)