equal
deleted
inserted
replaced
27 Function_Elims.dest_funprop (HOLogic.dest_Trueprop prop) |
27 Function_Elims.dest_funprop (HOLogic.dest_Trueprop prop) |
28 handle TERM _ => err (); |
28 handle TERM _ => err (); |
29 val info = Function.get_info ctxt f handle List.Empty => err (); |
29 val info = Function.get_info ctxt f handle List.Empty => err (); |
30 val {elims, pelims, is_partial, ...} = info; |
30 val {elims, pelims, is_partial, ...} = info; |
31 val elims = if is_partial then pelims else the elims; |
31 val elims = if is_partial then pelims else the elims; |
32 val cprop = Proof_Context.cterm_of ctxt prop; |
32 val cprop = Thm.cterm_of ctxt prop; |
33 fun mk_elim rl = |
33 fun mk_elim rl = |
34 Thm.implies_intr cprop |
34 Thm.implies_intr cprop |
35 (Tactic.rule_by_tactic ctxt (Inductive.mk_cases_tac ctxt) (Thm.assume cprop RS rl)) |
35 (Tactic.rule_by_tactic ctxt (Inductive.mk_cases_tac ctxt) (Thm.assume cprop RS rl)) |
36 |> singleton (Variable.export (Variable.auto_fixes prop ctxt) ctxt); |
36 |> singleton (Variable.export (Variable.auto_fixes prop ctxt) ctxt); |
37 in |
37 in |