equal
deleted
inserted
replaced
326 val (branches, steps) = |
326 val (branches, steps) = |
327 map_index prove_branch (branches ~~ (complete_thms ~~ pats)) |
327 map_index prove_branch (branches ~~ (complete_thms ~~ pats)) |
328 |> split_list |> apsnd flat |
328 |> split_list |> apsnd flat |
329 |
329 |
330 val istep = sum_split_rule |
330 val istep = sum_split_rule |
331 |> fold (fn b => fn th => Drule.compose_single (b, 1, th)) branches |
331 |> fold (fn b => fn th => Drule.compose (b, 1, th)) branches |
332 |> Thm.implies_intr ihyp |
332 |> Thm.implies_intr ihyp |
333 |> Thm.forall_intr (cert x) (* "!!x. (!!y<x. P y) ==> P x" *) |
333 |> Thm.forall_intr (cert x) (* "!!x. (!!y<x. P y) ==> P x" *) |
334 |
334 |
335 val induct_rule = |
335 val induct_rule = |
336 @{thm "wf_induct_rule"} |
336 @{thm "wf_induct_rule"} |