equal
deleted
inserted
replaced
315 adm_not_eq_tr adm_conj adm_disj adm_imp adm_all |
315 adm_not_eq_tr adm_conj adm_disj adm_imp adm_all |
316 |
316 |
317 |
317 |
318 ML {* |
318 ML {* |
319 fun induct_tac ctxt v i = |
319 fun induct_tac ctxt v i = |
320 RuleInsts.res_inst_tac ctxt [(("f", 0), v)] @{thm induct} i THEN |
320 res_inst_tac ctxt [(("f", 0), v)] @{thm induct} i THEN |
321 REPEAT (resolve_tac @{thms adm_lemmas} i) |
321 REPEAT (resolve_tac @{thms adm_lemmas} i) |
322 *} |
322 *} |
323 |
323 |
324 lemma least_FIX: "f(p) = p ==> FIX(f) << p" |
324 lemma least_FIX: "f(p) = p ==> FIX(f) << p" |
325 apply (tactic {* induct_tac @{context} "f" 1 *}) |
325 apply (tactic {* induct_tac @{context} "f" 1 *}) |
374 apply (rule 3) |
374 apply (rule 3) |
375 done |
375 done |
376 |
376 |
377 ML {* |
377 ML {* |
378 fun induct2_tac ctxt (f, g) i = |
378 fun induct2_tac ctxt (f, g) i = |
379 RuleInsts.res_inst_tac ctxt [(("f", 0), f), (("g", 0), g)] @{thm induct2} i THEN |
379 res_inst_tac ctxt [(("f", 0), f), (("g", 0), g)] @{thm induct2} i THEN |
380 REPEAT(resolve_tac @{thms adm_lemmas} i) |
380 REPEAT(resolve_tac @{thms adm_lemmas} i) |
381 *} |
381 *} |
382 |
382 |
383 end |
383 end |