equal
deleted
inserted
replaced
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']; |