tuned signature;
authorwenzelm
Sat, 06 Jan 2024 12:44:35 +0100
changeset 79423 841545180269
parent 79422 371ee5494d15
child 79424 16c65e67dd75
tuned signature;
src/Pure/proofterm.ML
--- a/src/Pure/proofterm.ML	Sat Jan 06 12:34:55 2024 +0100
+++ b/src/Pure/proofterm.ML	Sat Jan 06 12:44:35 2024 +0100
@@ -2174,7 +2174,8 @@
   end;
 
 fun prepare_thm_proof unconstrain thy sorts_zproof sorts_proof
-    (name, pos) shyps hyps concl promises (PBody body0) =
+    (name, pos) shyps hyps concl promises
+    (PBody {oracles = oracles0, thms = thms0, zboxes = zboxes0, zproof = zproof0, proof = proof0}) =
   let
     val named = name <> "";
 
@@ -2185,11 +2186,10 @@
 
     val proofs = get_proofs_level ();
     val (zproof1, zboxes1) =
-      if zproof_enabled proofs
-      then ZTerm.add_box_proof thy hyps concl (#zproof body0) (#zboxes body0)
+      if zproof_enabled proofs then ZTerm.add_box_proof thy hyps concl zproof0 zboxes0
       else (ZDummy, []);
     val proof1 =
-      if proof_enabled proofs then fold_rev implies_intr_proof hyps (#proof body0)
+      if proof_enabled proofs then fold_rev implies_intr_proof hyps proof0
       else MinProof;
 
     fun new_prf () =
@@ -2198,15 +2198,14 @@
         val unconstrainT = unconstrainT_proof (Sign.classes_of thy) sorts_proof ucontext;
         val postproc = map_proof_of (unconstrainT #> named ? rew_proof thy);
         val body1 =
-          {oracles = #oracles body0, thms = #thms body0,
-            zboxes = [], zproof = ZDummy, proof = proof1};
+          {oracles = oracles0, thms = thms0, zboxes = [], zproof = ZDummy, proof = proof1};
       in (i, fulfill_proof_future thy promises postproc (Future.value (PBody body1))) end;
 
     val (i, body') =
       (*somewhat non-deterministic proof boxes!*)
       if export_enabled () then new_prf ()
       else
-        (case strip_combt (fst (strip_combP (#proof body0))) of
+        (case strip_combt (fst (strip_combP proof0)) of
           (PThm ({serial = ser, name = a, prop = prop', types = NONE, ...}, thm_body'), args') =>
             if (a = "" orelse a = name) andalso prop' = prop1 andalso args' = args then
               let