proper check of Proof.is_relevant (again, cf. c3e99efacb67 and df8fc0567a3d);
authorwenzelm
Wed, 20 Feb 2013 11:40:30 +0100
changeset 51226 1973089f1dba
parent 51225 3fe0d8d55975
child 51227 88c96e836ed6
proper check of Proof.is_relevant (again, cf. c3e99efacb67 and df8fc0567a3d);
src/Pure/Isar/proof.ML
src/Pure/Isar/toplevel.ML
--- a/src/Pure/Isar/proof.ML	Wed Feb 20 00:00:42 2013 +0100
+++ b/src/Pure/Isar/proof.ML	Wed Feb 20 11:40:30 2013 +0100
@@ -114,6 +114,7 @@
   val show_cmd: Method.text option -> (thm list list -> state -> state) ->
     (Attrib.binding * (string * string list) list) list -> bool -> state -> state
   val schematic_goal: state -> bool
+  val is_relevant: state -> bool
   val local_future_proof: (state -> ('a * state) future) -> state -> 'a future * state
   val global_future_proof: (state -> ('a * context) future) -> state -> 'a future * context
   val local_future_terminal_proof: Method.text_range * Method.text_range option -> bool ->
--- a/src/Pure/Isar/toplevel.ML	Wed Feb 20 00:00:42 2013 +0100
+++ b/src/Pure/Isar/toplevel.ML	Wed Feb 20 11:40:30 2013 +0100
@@ -694,7 +694,8 @@
 
 fun proof_result immediate (tr, proof_trs) st =
   let val st' = command tr st in
-    if immediate orelse null proof_trs orelse not (can proof_of st')
+    if immediate orelse null proof_trs orelse not (can proof_of st') orelse
+      Proof.is_relevant (proof_of st')
     then
       let val (results, st'') = fold_map command_result proof_trs st'
       in (Future.value ((tr, st') :: results), st'') end