src/Tools/induct_tacs.ML
changeset 60695 757549b4bbe6
parent 59830 96008563bfee
child 63120 629a4c5e953e
equal deleted inserted replaced
60694:b3fa4a8cdb5f 60695:757549b4bbe6
    66 
    66 
    67 fun induct_tac ctxt varss opt_rules i st =
    67 fun induct_tac ctxt varss opt_rules i st =
    68   let
    68   let
    69     val goal = Thm.cprem_of st i;
    69     val goal = Thm.cprem_of st i;
    70     val (_, goal_ctxt) = Rule_Insts.goal_context (Thm.term_of goal) ctxt
    70     val (_, goal_ctxt) = Rule_Insts.goal_context (Thm.term_of goal) ctxt
    71     and ((_, goal'), _) = Variable.focus_cterm goal ctxt;
    71     and ((_, goal'), _) = Variable.focus_cterm NONE goal ctxt;
    72     val (prems, concl) = Logic.strip_horn (Thm.term_of goal');
    72     val (prems, concl) = Logic.strip_horn (Thm.term_of goal');
    73 
    73 
    74     fun induct_var name =
    74     fun induct_var name =
    75       let
    75       let
    76         val t = Syntax.read_term goal_ctxt name;
    76         val t = Syntax.read_term goal_ctxt name;