src/HOL/Tools/Function/fun_cases.ML
changeset 59621 291934bac95e
parent 59618 e6939796717e
child 59936 b8ffc3dc9e24
equal deleted inserted replaced
59620:92d7d8e4f1bf 59621:291934bac95e
    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