# HG changeset patch # User wenzelm # Date 1629982335 -7200 # Node ID c36b663ef037606fea5b493728a10d32b5b3f574 # Parent 17090e27aae9dd416da8fab7d80c060d977398cc tuned; diff -r 17090e27aae9 -r c36b663ef037 src/Pure/variable.ML --- a/src/Pure/variable.ML Thu Aug 26 14:45:19 2021 +0200 +++ b/src/Pure/variable.ML Thu Aug 26 14:52:15 2021 +0200 @@ -516,14 +516,14 @@ val still_fixed = not o is_newly_fixed inner outer; val gen_fixes = - Name_Space.fold_table (fn (y, _) => not (is_fixed outer y) ? cons y) - (fixes_of inner) []; + Name_Space.fold_table (fn (y, _) => not (is_fixed outer y) ? Symtab.insert_set y) + (fixes_of inner) Symtab.empty; val type_occs_inner = type_occs_of inner; fun gen_fixesT ts = Symtab.fold (fn (a, xs) => if declared_outer a orelse exists still_fixed xs - then I else cons a) (fold decl_type_occs ts type_occs_inner) []; + then I else Symtab.insert_set a) (fold decl_type_occs ts type_occs_inner) Symtab.empty; in (gen_fixesT, gen_fixes) end; fun exportT_inst inner outer = #1 (export_inst inner outer); @@ -534,7 +534,7 @@ val maxidx = maxidx_of outer; in fn ts => ts |> map - (Term_Subst.generalize (Symtab.make_set (mk_tfrees ts), Symtab.empty) + (Term_Subst.generalize (mk_tfrees ts, Symtab.empty) (fold (Term.fold_types Term.maxidx_typ) ts maxidx + 1)) end; @@ -544,17 +544,17 @@ val maxidx = maxidx_of outer; in fn ts => ts |> map - (Term_Subst.generalize (Symtab.make_set (mk_tfrees ts), Symtab.make_set tfrees) + (Term_Subst.generalize (mk_tfrees ts, tfrees) (fold Term.maxidx_term ts maxidx + 1)) end; fun export_prf inner outer prf = let val (mk_tfrees, frees) = export_inst (declare_prf prf inner) outer; - val tfrees = Symtab.make_set (mk_tfrees []); + val tfrees = mk_tfrees []; val maxidx = maxidx_of outer; val idx = Proofterm.maxidx_proof prf maxidx + 1; - val gen_term = Term_Subst.generalize_same (tfrees, Symtab.make_set frees) idx; + val gen_term = Term_Subst.generalize_same (tfrees, frees) idx; val gen_typ = Term_Subst.generalizeT_same tfrees idx; in Same.commit (Proofterm.map_proof_terms_same gen_term gen_typ) prf end; @@ -563,9 +563,9 @@ let val tfrees = mk_tfrees (map Thm.full_prop_of ths); val idx = fold Thm.maxidx_thm ths maxidx + 1; - in map (Thm.generalize (Symtab.make_set tfrees, Symtab.make_set frees) idx) ths end; + in map (Thm.generalize (tfrees, frees) idx) ths end; -fun exportT inner outer = gen_export (exportT_inst inner outer, []) (maxidx_of outer); +fun exportT inner outer = gen_export (exportT_inst inner outer, Symtab.empty) (maxidx_of outer); fun export inner outer = gen_export (export_inst inner outer) (maxidx_of outer); fun export_morphism inner outer =