clarified Proofterm.proofs vs. Goal.skip_proofs;
authorwenzelm
Tue, 02 Jul 2013 14:48:01 +0200
changeset 52499 812215680f6d
parent 52498 d802431fe356
child 52500 9b44e7df9350
clarified Proofterm.proofs vs. Goal.skip_proofs;
src/Doc/ROOT
src/HOL/ROOT
src/Pure/Isar/toplevel.ML
src/Pure/goal.ML
--- a/src/Doc/ROOT	Mon Jul 01 15:08:29 2013 +0200
+++ b/src/Doc/ROOT	Tue Jul 02 14:48:01 2013 +0200
@@ -81,7 +81,7 @@
     Proof
     Syntax
     Tactic
-  theories [skip_proofs = false, parallel_proofs = 0]
+  theories [parallel_proofs = 0]
     Logic
   files
     "../prepare_document"
--- a/src/HOL/ROOT	Mon Jul 01 15:08:29 2013 +0200
+++ b/src/HOL/ROOT	Tue Jul 02 14:48:01 2013 +0200
@@ -16,7 +16,7 @@
   description {*
     HOL-Main with explicit proof terms.
   *}
-  options [document = false, skip_proofs = false]
+  options [document = false]
   theories Proofs (*sequential change of global flag!*)
   theories Main
   files
@@ -357,7 +357,7 @@
   theories Decision_Procs
 
 session "HOL-Proofs-ex" in "Proofs/ex" = "HOL-Proofs" +
-  options [document = false, skip_proofs = false, parallel_proofs = 0]
+  options [document = false, parallel_proofs = 0]
   theories
     Hilbert_Classical
     XML_Data
@@ -366,7 +366,7 @@
   description {*
     Examples for program extraction in Higher-Order Logic.
   *}
-  options [condition = ISABELLE_POLYML, skip_proofs = false, parallel_proofs = 0]
+  options [condition = ISABELLE_POLYML, parallel_proofs = 0]
   theories [document = false]
     "~~/src/HOL/Library/Code_Target_Numeral"
     "~~/src/HOL/Library/Monad_Syntax"
@@ -391,7 +391,7 @@
     The paper "More Church-Rosser Proofs (in Isabelle/HOL)" describes the whole
     theory (see http://www.in.tum.de/~nipkow/pubs/jar2001.html).
   *}
-  options [document_graph, print_mode = "no_brackets", skip_proofs = false, parallel_proofs = 0]
+  options [document_graph, print_mode = "no_brackets", parallel_proofs = 0]
   theories [document = false]
     "~~/src/HOL/Library/Code_Target_Int"
   theories
--- a/src/Pure/Isar/toplevel.ML	Mon Jul 01 15:08:29 2013 +0200
+++ b/src/Pure/Isar/toplevel.ML	Tue Jul 02 14:48:01 2013 +0200
@@ -517,7 +517,7 @@
   (fn Theory (gthy, _) =>
     let
       val (finish, prf) = init int gthy;
-      val skip = ! Goal.skip_proofs;
+      val skip = Goal.skip_proofs_enabled ();
       val (is_goal, no_skip) =
         (true, Proof.schematic_goal prf) handle ERROR _ => (false, true);
       val _ =
--- a/src/Pure/goal.ML	Mon Jul 01 15:08:29 2013 +0200
+++ b/src/Pure/goal.ML	Tue Jul 02 14:48:01 2013 +0200
@@ -30,6 +30,7 @@
   val peek_futures: serial -> unit future list
   val reset_futures: unit -> Future.group list
   val shutdown_futures: unit -> unit
+  val skip_proofs_enabled: unit -> bool
   val future_enabled_level: int -> bool
   val future_enabled: unit -> bool
   val future_enabled_nested: int -> bool
@@ -197,6 +198,13 @@
 
 val skip_proofs = Unsynchronized.ref false;
 
+fun skip_proofs_enabled () =
+  let val skip = ! skip_proofs in
+    if Proofterm.proofs_enabled () andalso skip then
+      (warning "Proof terms enabled -- cannot skip proofs"; false)
+    else skip
+  end;
+
 val parallel_proofs = Unsynchronized.ref 1;
 
 fun future_enabled_level n =
@@ -277,7 +285,7 @@
 
     val schematic = exists is_schematic props;
     val future = future_enabled ();
-    val skip = not immediate andalso not schematic andalso future andalso ! skip_proofs;
+    val skip = not immediate andalso not schematic andalso future andalso skip_proofs_enabled ();
 
     val pos = Position.thread_data ();
     fun err msg = cat_error msg