proper check of Proof.is_relevant (again, cf. c3e99efacb67 and df8fc0567a3d);
authorwenzelm
Wed, 20 Feb 2013 11:40:30 +0100
changeset 523631973089f1dba
parent 52362 3fe0d8d55975
child 52364 88c96e836ed6
proper check of Proof.is_relevant (again, cf. c3e99efacb67 and df8fc0567a3d);
src/Pure/Isar/proof.ML
src/Pure/Isar/toplevel.ML
     1.1 --- a/src/Pure/Isar/proof.ML	Wed Feb 20 00:00:42 2013 +0100
     1.2 +++ b/src/Pure/Isar/proof.ML	Wed Feb 20 11:40:30 2013 +0100
     1.3 @@ -114,6 +114,7 @@
     1.4    val show_cmd: Method.text option -> (thm list list -> state -> state) ->
     1.5      (Attrib.binding * (string * string list) list) list -> bool -> state -> state
     1.6    val schematic_goal: state -> bool
     1.7 +  val is_relevant: state -> bool
     1.8    val local_future_proof: (state -> ('a * state) future) -> state -> 'a future * state
     1.9    val global_future_proof: (state -> ('a * context) future) -> state -> 'a future * context
    1.10    val local_future_terminal_proof: Method.text_range * Method.text_range option -> bool ->
     2.1 --- a/src/Pure/Isar/toplevel.ML	Wed Feb 20 00:00:42 2013 +0100
     2.2 +++ b/src/Pure/Isar/toplevel.ML	Wed Feb 20 11:40:30 2013 +0100
     2.3 @@ -694,7 +694,8 @@
     2.4  
     2.5  fun proof_result immediate (tr, proof_trs) st =
     2.6    let val st' = command tr st in
     2.7 -    if immediate orelse null proof_trs orelse not (can proof_of st')
     2.8 +    if immediate orelse null proof_trs orelse not (can proof_of st') orelse
     2.9 +      Proof.is_relevant (proof_of st')
    2.10      then
    2.11        let val (results, st'') = fold_map command_result proof_trs st'
    2.12        in (Future.value ((tr, st') :: results), st'') end