expanded Sledgehammer's schedule (loosely inspired by "Hammering without ATPs" evaluation)
authordesharna
Mon, 07 Apr 2025 12:36:56 +0200
changeset 82457 5a0d1075911c
parent 82456 690a018f7370
child 82458 c7bd567723b1
child 82459 a1de627d417a
child 82463 3125fd1ee69c
expanded Sledgehammer's schedule (loosely inspired by "Hammering without ATPs" evaluation)
src/HOL/Tools/Sledgehammer/sledgehammer.ML
src/HOL/Tools/Sledgehammer/sledgehammer_prover_tactic.ML
--- a/src/HOL/Tools/Sledgehammer/sledgehammer.ML	Mon Apr 07 09:13:10 2025 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer.ML	Mon Apr 07 12:36:56 2025 +0200
@@ -97,7 +97,7 @@
     |> the_default (SH_Unknown, "")
   end
 
-fun play_one_line_proofs minimize timeout used_facts state goal i methss =
+fun play_one_line_proofs minimize timeout used_facts state goal i methss : preplay_result list =
   (if timeout = Time.zeroTime then
      []
    else
@@ -393,6 +393,8 @@
 fun default_slice_schedule (ctxt : Proof.context) : string list =
   (* We want to subsume try0. *)
   flat (Try0.get_schedule ctxt) @
+  (* FUDGE (loosely inspired by "Hammering without ATPs" evaluation) *)
+  ["metis", "fastforce", "metis", "simp", "auto"] @
   (* FUDGE (loosely inspired by Seventeen evaluation) *)
   [cvc5N, zipperpositionN, vampireN, veritN, spassN, zipperpositionN, eN, cvc5N, zipperpositionN,
    cvc5N, eN, zipperpositionN, vampireN, cvc5N, cvc5N, vampireN, cvc5N, iproverN, zipperpositionN,
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_prover_tactic.ML	Mon Apr 07 09:13:10 2025 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer_prover_tactic.ML	Mon Apr 07 12:36:56 2025 +0200
@@ -26,14 +26,20 @@
 
 val is_tactic_prover : string -> bool = is_some o Try0.get_proof_method
 
-val meshN = "mesh"
+local
+
+val slices_of_max_facts = map (fn max_facts => (1, false, false, max_facts, "mesh"))
+
+in
 
-fun good_slices_of_tactic_prover _ =
-  (* FUDGE *)
-  [(1, false, false, 0, meshN),
-   (1, false, false, 2, meshN),
-   (1, false, false, 8, meshN),
-   (1, false, false, 32, meshN)]
+(* FUDGE *)
+fun good_slices_of_tactic_prover "metis" = slices_of_max_facts [0, 64, 32, 8, 16, 4, 2, 1]
+  | good_slices_of_tactic_prover "fastforce" = slices_of_max_facts [0, 16, 32, 8, 4, 64, 2, 1]
+  | good_slices_of_tactic_prover "simp" = slices_of_max_facts [0, 16, 32, 8, 64, 4, 1, 2]
+  | good_slices_of_tactic_prover "auto" = slices_of_max_facts [0, 16, 32, 8, 4, 64, 2, 1]
+  | good_slices_of_tactic_prover _ = slices_of_max_facts [0, 2, 8, 16, 32, 64]
+
+end
 
 fun meth_of "algebra" = Algebra_Method
   | meth_of "argo" = Argo_Method