tweak padding of prover slice schedule to include all provers
authorblanchet
Mon, 31 Jan 2022 16:09:23 +0100
changeset 75032 8d08bc7e8f98
parent 75031 ae4dc5ac983f
child 75033 b55d84e41d61
tweak padding of prover slice schedule to include all provers
src/HOL/Sledgehammer.thy
src/HOL/Tools/Sledgehammer/sledgehammer.ML
--- a/src/HOL/Sledgehammer.thy	Mon Jan 31 16:09:23 2022 +0100
+++ b/src/HOL/Sledgehammer.thy	Mon Jan 31 16:09:23 2022 +0100
@@ -36,6 +36,15 @@
 ML_file \<open>Tools/Sledgehammer/sledgehammer_tactics.ML\<close>
 
 (*
+lemma "1 + 1 = 2"
+  sledgehammer [slices = 40, max_proofs = 40]
+
+lemma "1 + 1 = 2"
+  sledgehammer [verbose, slices = 4]
+  oops
+*)
+
+(*
 lemma "1 + 1 = 2 \<and> 0 + (x::nat) = x"
   sledgehammer [max_proofs = 3]
   oops
--- a/src/HOL/Tools/Sledgehammer/sledgehammer.ML	Mon Jan 31 16:09:23 2022 +0100
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer.ML	Mon Jan 31 16:09:23 2022 +0100
@@ -272,7 +272,8 @@
 fun schedule_of_provers provers num_slices =
   let
     val num_default_slices = length default_slice_schedule
-    val unknown_provers = filter_out (member (op =) default_slice_schedule) provers
+    val (known_provers, unknown_provers) =
+      List.partition (member (op =) default_slice_schedule) provers
 
     fun round_robin _ [] = []
       | round_robin 0 _ = []
@@ -281,7 +282,8 @@
     if num_slices <= num_default_slices then
       take num_slices default_slice_schedule
     else
-      default_slice_schedule @ round_robin (num_slices - num_default_slices) unknown_provers
+      default_slice_schedule
+      @ round_robin (num_slices - num_default_slices) (unknown_provers @ known_provers)
   end
 
 fun prover_slices_of_schedule ctxt schedule =