tuned;
authorwenzelm
Wed, 14 Aug 2019 19:40:30 +0200
changeset 70530 81a8eba6639c
parent 70529 2ecbbe6b35db
child 70531 2d2b5a8e8d59
tuned;
src/Pure/proofterm.ML
--- a/src/Pure/proofterm.ML	Wed Aug 14 19:21:34 2019 +0200
+++ b/src/Pure/proofterm.ML	Wed Aug 14 19:40:30 2019 +0200
@@ -2099,18 +2099,18 @@
 
 fun encode_export prop prf = pair term proof (prop, prf);
 
-end;
 
-val declare_freesT = fold_atyps (fn TFree (a, _) => Name.declare a | _ => I);
-fun declare_frees t =
-  fold_types declare_freesT t #>
-  fold_aterms (fn Free (x, _) => Name.declare x | _ => I) t;
+val used_frees_type = fold_atyps (fn TFree (a, _) => Name.declare a | _ => I);
+fun used_frees_term t = fold_types used_frees_type t #> Term.declare_term_frees t;
+val used_frees_proof = fold_proof_terms used_frees_term used_frees_type;
+
+end;
 
 fun export_proof thy i prop prf =
   let
     val free_names = Name.context
-      |> declare_frees prop
-      |> fold_proof_terms declare_frees declare_freesT prf;
+      |> used_frees_term prop
+      |> used_frees_proof prf;
     val ([prop'], [prf']) = standard_vars free_names ([prop], [reconstruct_proof thy prop prf]);
     val xml = encode_export prop' prf';
     val chunks = Buffer.chunks (YXML.buffer_body xml Buffer.empty);