equal
deleted
inserted
replaced
220 val xs = map_index (fn (i,T) => cterm_of thy (Free ("x" ^ string_of_int i, T))) caTs (* FIXME: Bind xs properly *) |
220 val xs = map_index (fn (i,T) => cterm_of thy (Free ("x" ^ string_of_int i, T))) caTs (* FIXME: Bind xs properly *) |
221 in |
221 in |
222 fold (fn x => fn thm => combination thm (reflexive x)) xs thm |
222 fold (fn x => fn thm => combination thm (reflexive x)) xs thm |
223 |> Conv.fconv_rule (Thm.beta_conversion true) |
223 |> Conv.fconv_rule (Thm.beta_conversion true) |
224 |> fold_rev forall_intr xs |
224 |> fold_rev forall_intr xs |
225 |> forall_elim_vars 0 |
225 |> Thm.forall_elim_vars 0 |
226 end |
226 end |
227 |
227 |
228 |
228 |
229 fun mutual_induct_rules lthy induct all_f_defs (Mutual {n, ST, RST, parts, ...}) = |
229 fun mutual_induct_rules lthy induct all_f_defs (Mutual {n, ST, RST, parts, ...}) = |
230 let |
230 let |