src/Pure/Isar/proof.ML
changeset 49012 8686c36fa27d
parent 49011 9c68e43502ce
child 49013 1266b51f9bbc
equal deleted inserted replaced
49011:9c68e43502ce 49012:8686c36fa27d
  1135 
  1135 
  1136 (* terminal proofs *)
  1136 (* terminal proofs *)
  1137 
  1137 
  1138 local
  1138 local
  1139 
  1139 
  1140 fun future_terminal_proof proof1 proof2 meths int state =
  1140 fun future_terminal_proof n proof1 proof2 meths int state =
  1141   if int orelse is_relevant state orelse not (Goal.local_future_enabled ())
  1141   if (Goal.future_enabled_level 4 orelse Goal.future_enabled_nested n andalso not int)
  1142   then proof1 meths state
  1142     andalso not (is_relevant state)
  1143   else snd (proof2 (fn state' =>
  1143   then
  1144     Goal.fork_name "Proof.future_terminal_proof" (fn () => ((), proof1 meths state'))) state);
  1144     snd (proof2 (fn state' =>
       
  1145       Goal.fork_name "Proof.future_terminal_proof" (fn () => ((), proof1 meths state'))) state)
       
  1146   else proof1 meths state;
  1145 
  1147 
  1146 in
  1148 in
  1147 
  1149 
  1148 fun local_future_terminal_proof x =
  1150 fun local_future_terminal_proof x =
  1149   future_terminal_proof local_terminal_proof local_future_proof x;
  1151   future_terminal_proof 2 local_terminal_proof local_future_proof x;
  1150 
  1152 
  1151 fun global_future_terminal_proof x =
  1153 fun global_future_terminal_proof x =
  1152   future_terminal_proof global_terminal_proof global_future_proof x;
  1154   future_terminal_proof 3 global_terminal_proof global_future_proof x;
  1153 
  1155 
  1154 end;
  1156 end;
  1155 
  1157 
  1156 end;
  1158 end;
  1157 
  1159