added force_proofs;
authorwenzelm
Tue, 18 Nov 2008 18:25:52 +0100
changeset 28842 e44fae2b721d
parent 28841 5556c7976837
child 28843 1987ef778a02
added force_proofs; join_futures: no errors here;
src/Pure/thm.ML
--- a/src/Pure/thm.ML	Tue Nov 18 18:25:49 2008 +0100
+++ b/src/Pure/thm.ML	Tue Nov 18 18:25:52 2008 +0100
@@ -150,6 +150,7 @@
   val future: (unit -> thm) -> cterm -> thm
   val proof_body_of: thm -> proof_body
   val proof_of: thm -> proof
+  val force_proof: thm -> unit
   val extern_oracles: theory -> xstring list
   val add_oracle: bstring * ('a -> cterm) -> theory -> (string * ('a -> thm)) * theory
 end;
@@ -1594,7 +1595,7 @@
 (
   type T = thm Future.T list ref;
   val empty : T = ref [];
-  val copy = I;  (*shared ref within whole theory body*)
+  val copy = I;  (*shared ref within all versions of whole theory body*)
   fun extend _ : T = ref [];
   fun merge _ _ : T = ref [];
 );
@@ -1613,7 +1614,7 @@
           val (finished, unfinished) = List.partition Future.is_finished (! futures);
           val _ = futures := unfinished;
         in finished end)
-      |> Future.join_results |> Exn.release_all |> null);
+      |> Future.join_results |> null);
   in while not (joined ()) do () end;
 
 
@@ -1667,6 +1668,7 @@
   in Pt.fulfill_proof (Theory.deref thy_ref) ps body end;
 
 val proof_of = Proofterm.proof_of o proof_body_of;
+val force_proof = ignore o proof_body_of;
 
 
 (* closed derivations with official name *)