equal
deleted
inserted
replaced
566 induct x - type induction |
566 induct x - type induction |
567 ... induct ... r - explicit rule |
567 ... induct ... r - explicit rule |
568 *) |
568 *) |
569 |
569 |
570 fun get_inductT ctxt insts = |
570 fun get_inductT ctxt insts = |
571 fold_rev multiply (insts |> map |
571 fold_rev (map_product cons) (insts |> map |
572 ((fn [] => NONE | ts => List.last ts) #> |
572 ((fn [] => NONE | ts => List.last ts) #> |
573 (fn NONE => TVar (("'a", 0), []) | SOME t => Term.fastype_of t) #> |
573 (fn NONE => TVar (("'a", 0), []) | SOME t => Term.fastype_of t) #> |
574 find_inductT ctxt)) [[]] |
574 find_inductT ctxt)) [[]] |
575 |> filter_out (forall Thm.is_internal); |
575 |> filter_out (forall Thm.is_internal); |
576 |
576 |