src/Tools/induct_tacs.ML
changeset 33368 b1cf34f1855c
parent 32863 5e8cef567042
child 33955 fff6f11b1f09
equal deleted inserted replaced
33367:2912bf1871ba 33368:b1cf34f1855c
    84       in #1 (check_type ctxt t) end;
    84       in #1 (check_type ctxt t) end;
    85 
    85 
    86     val argss = map (map (Option.map induct_var)) varss;
    86     val argss = map (map (Option.map induct_var)) varss;
    87     val rule =
    87     val rule =
    88       (case opt_rules of
    88       (case opt_rules of
    89         SOME rules => #2 (RuleCases.strict_mutual_rule ctxt rules)
    89         SOME rules => #2 (Rule_Cases.strict_mutual_rule ctxt rules)
    90       | NONE =>
    90       | NONE =>
    91           (case map_filter (RuleCases.mutual_rule ctxt) (Induct.get_inductT ctxt argss) of
    91           (case map_filter (Rule_Cases.mutual_rule ctxt) (Induct.get_inductT ctxt argss) of
    92             (_, rule) :: _ => rule
    92             (_, rule) :: _ => rule
    93           | [] => raise THM ("No induction rules", 0, [])));
    93           | [] => raise THM ("No induction rules", 0, [])));
    94 
    94 
    95     val rule' = rule |> Conv.fconv_rule (Conv.concl_conv ~1 ObjectLogic.atomize);
    95     val rule' = rule |> Conv.fconv_rule (Conv.concl_conv ~1 ObjectLogic.atomize);
    96     val _ = Method.trace ctxt [rule'];
    96     val _ = Method.trace ctxt [rule'];