more thorough clean_proof;
authorwenzelm
Wed, 24 Jul 2019 11:54:08 +0200
changeset 70405 64fdd75c1dea
parent 70404 9dc99e3153b3
child 70406 8473c1b32e2e
more thorough clean_proof;
src/Pure/proofterm.ML
--- a/src/Pure/proofterm.ML	Wed Jul 24 11:32:18 2019 +0200
+++ b/src/Pure/proofterm.ML	Wed Jul 24 11:54:08 2019 +0200
@@ -151,7 +151,7 @@
 
   val forall_intr_vfs: term -> term
   val forall_intr_vfs_prf: term -> proof -> proof
-  val clean_proof: proof -> proof
+  val clean_proof: theory -> proof -> proof
 
   val fulfill_norm_proof: theory -> (serial * proof_body) list -> proof_body -> proof_body
   val thm_proof: theory -> string -> sort list -> term list -> term ->
@@ -1587,7 +1587,7 @@
 
 end;
 
-fun clean_proof prf =
+fun clean_proof thy prf =
   let
     fun clean maxidx prfs (AbsP (s, t, prf)) =
           let val (maxidx', prfs', prf') = clean maxidx prfs prf
@@ -1624,8 +1624,7 @@
           end
       | clean maxidx prfs prf = (maxidx, prfs, prf);
 
-    val maxidx = maxidx_proof prf ~1;
-  in norm_proof (Envir.empty maxidx) (#3 (clean maxidx [] prf)) end;
+  in rew_proof thy (#3 (clean (maxidx_proof prf ~1) [] prf)) end;
 
 
 
@@ -1726,7 +1725,7 @@
       else ();
       if Options.default_bool "prune_proofs" then MinProof else prf1);
 
-    fun publish i = clean_proof #> export i #> shrink_proof;
+    fun publish i = clean_proof thy #> export i #> shrink_proof;
 
     fun new_prf () =
       let