src/HOL/Tools/Function/induction_schema.ML
changeset 52467 24c6ddb48cb8
parent 52223 5bb6ae8acb87
child 54742 7a86358a3c0b
equal deleted inserted replaced
52466:a3b175675843 52467:24c6ddb48cb8
   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"}