equal
deleted
inserted
replaced
118 val asms = map fst (Attrib.map_specs (prep_att thy) raw_asms) ~~ proppss; |
118 val asms = map fst (Attrib.map_specs (prep_att thy) raw_asms) ~~ proppss; |
119 |
119 |
120 val _ = Variable.warn_extra_tfrees fix_ctxt asms_ctxt; |
120 val _ = Variable.warn_extra_tfrees fix_ctxt asms_ctxt; |
121 |
121 |
122 (*obtain statements*) |
122 (*obtain statements*) |
123 val thesisN = Term.variant xs AutoBind.thesisN; |
123 val thesisN = Name.variant xs AutoBind.thesisN; |
124 val (thesis_var, thesis) = bind_judgment fix_ctxt thesisN; |
124 val (thesis_var, thesis) = bind_judgment fix_ctxt thesisN; |
125 |
125 |
126 fun occs_var x = Library.get_first (fn t => |
126 fun occs_var x = Library.get_first (fn t => |
127 Term.find_free t (ProofContext.get_skolem fix_ctxt x)) asm_props; |
127 Term.find_free t (ProofContext.get_skolem fix_ctxt x)) asm_props; |
128 val parms = |
128 val parms = |
194 (Vartab.empty, Int.max (maxidx, Thm.maxidx_of rule)); |
194 (Vartab.empty, Int.max (maxidx, Thm.maxidx_of rule)); |
195 val norm_type = Envir.norm_type tyenv; |
195 val norm_type = Envir.norm_type tyenv; |
196 |
196 |
197 val xs = map (apsnd norm_type o fst) vars; |
197 val xs = map (apsnd norm_type o fst) vars; |
198 val ys = map (apsnd norm_type) (Library.drop (m, params)); |
198 val ys = map (apsnd norm_type) (Library.drop (m, params)); |
199 val ys' = map Term.internal (Term.variantlist (map fst ys, map fst xs)) ~~ map #2 ys; |
199 val ys' = map Name.internal (Name.variant_list (map fst xs) (map fst ys)) ~~ map #2 ys; |
200 val terms = map (Drule.mk_term o cert o Free) (xs @ ys'); |
200 val terms = map (Drule.mk_term o cert o Free) (xs @ ys'); |
201 |
201 |
202 val instT = |
202 val instT = |
203 fold (Term.add_tvarsT o #2) params [] |
203 fold (Term.add_tvarsT o #2) params [] |
204 |> map (TVar #> (fn T => (certT T, certT (norm_type T)))); |
204 |> map (TVar #> (fn T => (certT T, certT (norm_type T)))); |