--- a/src/HOL/Tools/Sledgehammer/sledgehammer.ML Wed Sep 06 20:51:28 2023 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer.ML Wed Sep 06 20:51:45 2023 +0200
@@ -262,7 +262,7 @@
| facts => "The goal is falsified by these facts: " ^ commas facts)
else
"Derived \"False\" from these facts alone: " ^
- commas (map fst used_facts)))
+ space_implode " " (map fst used_facts)))
fun check_expected_outcome ctxt prover_name expect outcome =
let
@@ -464,7 +464,7 @@
end
fun run_sledgehammer (params as {verbose, spy, provers, falsify, induction_rules, max_facts,
- max_proofs, slices, ...}) mode writeln_result i (fact_override as {only, ...}) state =
+ max_proofs, slices, timeout, ...}) mode writeln_result i (fact_override as {only, ...}) state =
if null provers then
error "No prover is set"
else
@@ -513,7 +513,7 @@
fun massage_message proof_or_inconsistency s =
let val s' = strip_time s in
if member (op =) (Synchronized.value seen_messages) s' then
- "Found duplicate " ^ proof_or_inconsistency
+ "Duplicate " ^ proof_or_inconsistency
else
(Synchronized.change seen_messages (cons s'); s)
end
@@ -577,6 +577,8 @@
val launch = launch_prover_and_preplay params mode has_already_found_something
found_something massage_message writeln_result learn
+ val timer = Timer.startRealTimer ()
+
val schedule =
if mode = Auto_Try then provers
else schedule_of_provers provers slices
@@ -597,7 +599,8 @@
else
(learn chained_thms;
Par_List.map (fn (prover, slice) =>
- if Synchronized.value found_proofs_and_falsifications < max_proofs then
+ if Synchronized.value found_proofs_and_falsifications < max_proofs
+ andalso Timer.checkRealTimer timer < timeout then
launch problem slice prover
else
(SH_None, ""))
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_prover_atp.ML Wed Sep 06 20:51:28 2023 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer_prover_atp.ML Wed Sep 06 20:51:45 2023 +0200
@@ -289,7 +289,8 @@
val _ =
if mode = Normal andalso not (is_conjecture_used_in_proof atp_proof)
andalso not (Logic.get_goal (Thm.prop_of goal) subgoal aconv @{prop False}) then
- warning ("Derived \"False\" from these facts alone: " ^ commas (map fst used_facts))
+ warning ("Derived \"False\" from these facts alone: " ^
+ space_implode " " (map fst used_facts))
else
()