equal
deleted
inserted
replaced
258 (*** NOTE! some simplifications need a different Solver!! ***) |
258 (*** NOTE! some simplifications need a different Solver!! ***) |
259 fun indhyp_tac hyps = |
259 fun indhyp_tac hyps = |
260 (cut_facts_tac hyps THEN' |
260 (cut_facts_tac hyps THEN' |
261 DEPTH_SOLVE_1 o (ares_tac [TrueI] ORELSE' |
261 DEPTH_SOLVE_1 o (ares_tac [TrueI] ORELSE' |
262 eresolve_tac [transD, mp, allE])); |
262 eresolve_tac [transD, mp, allE])); |
263 val wf_super_ss = HOL_ss addSolver indhyp_tac; |
263 val wf_super_ss = HOL_ss addSolver (mk_solver "WF" indhyp_tac); |
264 |
264 |
265 Goalw [is_recfun_def,cut_def] |
265 Goalw [is_recfun_def,cut_def] |
266 "[| wf(r); trans(r); is_recfun r H a f; is_recfun r H b g |] ==> \ |
266 "[| wf(r); trans(r); is_recfun r H a f; is_recfun r H b g |] ==> \ |
267 \ (x,a):r --> (x,b):r --> f(x)=g(x)"; |
267 \ (x,a):r --> (x,b):r --> f(x)=g(x)"; |
268 by (etac wf_induct 1); |
268 by (etac wf_induct 1); |