equal
deleted
inserted
replaced
130 val params = map Free (xs' ~~ Ts); |
130 val params = map Free (xs' ~~ Ts); |
131 val cparams = map (Thm.cterm_of params_ctxt) params; |
131 val cparams = map (Thm.cterm_of params_ctxt) params; |
132 val _ = Variable.warn_extra_tfrees fix_ctxt params_ctxt; |
132 val _ = Variable.warn_extra_tfrees fix_ctxt params_ctxt; |
133 |
133 |
134 (*abstracted term bindings*) |
134 (*abstracted term bindings*) |
135 fun abs_params t = |
135 val abs_term = Term.close_schematic_term o fold_rev Term.lambda_name (xs ~~ params); |
136 let |
136 val binds' = map (apsnd abs_term) binds; |
137 val ps = |
|
138 (xs ~~ params) |> map_filter (fn (x, p) => |
|
139 if exists_subterm (fn u => u aconv p) t then SOME (x, p) else NONE); |
|
140 in fold_rev Term.lambda_name ps t end; |
|
141 val binds' = map (apsnd (Term.close_schematic_term o abs_params)) binds; |
|
142 |
137 |
143 (*obtain statements*) |
138 (*obtain statements*) |
144 val thesisN = singleton (Name.variant_list xs) Auto_Bind.thesisN; |
139 val thesisN = singleton (Name.variant_list xs) Auto_Bind.thesisN; |
145 val (thesis_var, thesis) = #1 (bind_judgment fix_ctxt thesisN); |
140 val (thesis_var, thesis) = #1 (bind_judgment fix_ctxt thesisN); |
146 |
141 |