# HG changeset patch # User wenzelm # Date 1565804430 -7200 # Node ID 81a8eba6639cf71640717107dc6366fe5d3f4e1d # Parent 2ecbbe6b35db531f74d9b28c580d565467b76213 tuned; diff -r 2ecbbe6b35db -r 81a8eba6639c 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);