started adding agsyHOL as an experimental prover
authorblanchet
Mon, 20 May 2013 11:27:13 +0200
changeset 52073 ccb292952774
parent 52072 c25764d7246e
child 52074 bc053db0801e
started adding agsyHOL as an experimental prover
src/HOL/Tools/ATP/atp_proof.ML
src/HOL/Tools/ATP/atp_systems.ML
--- a/src/HOL/Tools/ATP/atp_proof.ML	Mon May 20 03:41:58 2013 +0200
+++ b/src/HOL/Tools/ATP/atp_proof.ML	Mon May 20 11:27:13 2013 +0200
@@ -50,6 +50,7 @@
     -> string * failure option
   val is_same_atp_step : step_name -> step_name -> bool
   val scan_general_id : string list -> string * string list
+  val agsyhol_coreN : string
   val satallax_coreN : string
   val z3_tptp_coreN : string
   val parse_formula :
@@ -468,6 +469,7 @@
    >> (fn ((((num, rule), deps), u), names) =>
           ((num, these names), Unknown, u, rule, map (rpair []) deps))) x
 
+val agsyhol_coreN = "__agsyhol_core" (* arbitrary *)
 val satallax_coreN = "__satallax_core" (* arbitrary *)
 val z3_tptp_coreN = "__z3_tptp_core" (* arbitrary *)
 
--- a/src/HOL/Tools/ATP/atp_systems.ML	Mon May 20 03:41:58 2013 +0200
+++ b/src/HOL/Tools/ATP/atp_systems.ML	Mon May 20 11:27:13 2013 +0200
@@ -48,6 +48,7 @@
   val spass_H2NuVS0Red2 : string
   val spass_H2SOS : string
   val spass_extra_options : string Config.T
+  val agsyholN : string
   val alt_ergoN : string
   val dummy_thfN : string
   val eN : string
@@ -86,6 +87,7 @@
 open ATP_Proof
 open ATP_Problem_Generate
 
+
 (* ATP configuration *)
 
 val default_max_mono_iters = 3 (* FUDGE *)
@@ -127,6 +129,11 @@
 val mashN = "mash"
 val meshN = "mesh"
 
+val tstp_proof_delims =
+  [("% SZS output start CNFRefutation", "% SZS output end CNFRefutation"),
+   ("% SZS output start Refutation", "% SZS output end Refutation"),
+   ("% SZS output start Proof", "% SZS output end Proof")]
+
 val known_perl_failures =
   [(CantConnect, "HTTP error"),
    (NoPerl, "env: perl"),
@@ -152,6 +159,7 @@
 
 (* named ATPs *)
 
+val agsyholN = "agsyhol"
 val alt_ergoN = "alt_ergo"
 val dummy_thfN = "dummy_thf" (* for experiments *)
 val eN = "e"
@@ -200,6 +208,29 @@
 val term_order =
   Attrib.setup_config_string @{binding atp_term_order} (K smartN)
 
+
+(* agsyHOL *)
+
+val agsyhol_thf0 =
+  THF (Monomorphic, TPTP_Explicit, THF_Without_Choice, THF_With_Defs)
+
+val agsyhol_config : atp_config =
+  {exec = (["AGSYHOL_HOME"], ["agsyHOL"]),
+   arguments = fn _ => fn _ => fn _ => fn timeout => fn file_name => fn _ =>
+       "--proof --time-out " ^ string_of_int (to_secs 1 timeout) ^ " " ^
+       file_name,
+   proof_delims = tstp_proof_delims,
+   known_failures = known_szs_status_failures,
+   prem_role = Hypothesis,
+   best_slices =
+     (* FUDGE *)
+     K [(1.0, (((60, ""), agsyhol_thf0, "mono_native_higher", keep_lamsN, false), ""))],
+   best_max_mono_iters = default_max_mono_iters - 1 (* FUDGE *),
+   best_max_new_mono_instances = default_max_new_mono_instances div 2 (* FUDGE *)}
+
+val agsyhol = (agsyholN, fn () => agsyhol_config)
+
+
 (* Alt-Ergo *)
 
 val alt_ergo_tff1 = TFF (Polymorphic, TPTP_Explicit)
@@ -229,10 +260,6 @@
 fun is_e_at_least_1_3 () = string_ord (getenv "E_VERSION", "1.3") <> LESS
 fun is_e_at_least_1_6 () = string_ord (getenv "E_VERSION", "1.6") <> LESS
 
-val tstp_proof_delims =
-  [("# SZS output start CNFRefutation.", "# SZS output end CNFRefutation"),
-   ("% SZS output start CNFRefutation", "% SZS output end CNFRefutation")]
-
 val e_smartN = "smart"
 val e_autoN = "auto"
 val e_fun_weightN = "fun_weight"
@@ -326,7 +353,9 @@
        "--term-ordering=" ^ (if is_lpo then "LPO4" else e_kbo ()) ^ " " ^
        "--cpu-limit=" ^ string_of_int (to_secs 2 timeout) ^
        e_shell_level_argument full_proof ^ " " ^ file_name,
-   proof_delims = tstp_proof_delims,
+   proof_delims =
+     [("# SZS output start CNFRefutation", "# SZS output end CNFRefutation")] @
+     tstp_proof_delims,
    known_failures =
      [(TimedOut, "Failure: Resource limit exceeded (time)"),
       (TimedOut, "time limit exceeded")] @
@@ -526,6 +555,7 @@
 
 val spass = (spassN, fn () => spass_config)
 
+
 (* Vampire *)
 
 (* Vampire 1.8 has TFF support, but the support was buggy until revision
@@ -555,9 +585,8 @@
        |> sos = sosN ? prefix "--sos on ",
    proof_delims =
      [("=========== Refutation ==========",
-       "======= End of refutation ======="),
-      ("% SZS output start Refutation", "% SZS output end Refutation"),
-      ("% SZS output start Proof", "% SZS output end Proof")],
+       "======= End of refutation =======")] @
+     tstp_proof_delims,
    known_failures =
      [(GaveUp, "UNPROVABLE"),
       (GaveUp, "CANNOT PROVE"),
@@ -634,6 +663,7 @@
   dummy_config (#prem_role spass_config) spass_poly_format "tc_native" true
 val spass_poly = (spass_polyN, fn () => spass_poly_config)
 
+
 (* Remote ATP invocation via SystemOnTPTP *)
 
 val remote_systems = Synchronized.var "atp_remote_systems" ([] : string list)
@@ -747,6 +777,7 @@
       Hypothesis
       (K (((50, ""), CNF_UEQ, "raw_mono_tags??", combsN, false), "") (* FUDGE *))
 
+
 (* Setup *)
 
 fun add_atp (name, config) thy =
@@ -783,9 +814,9 @@
       end
   end
 
-val atps=
-  [alt_ergo, e, e_males, e_par, iprover, iprover_eq, leo2, satallax, spass,
-   spass_poly, vampire, z3_tptp, dummy_thf, remote_e, remote_e_sine,
+val atps =
+  [agsyhol, alt_ergo, e, e_males, e_par, iprover, iprover_eq, leo2, satallax,
+   spass, spass_poly, vampire, z3_tptp, dummy_thf, remote_e, remote_e_sine,
    remote_e_tofof, remote_iprover, remote_iprover_eq, remote_leo2,
    remote_satallax, remote_vampire, remote_snark, remote_waldmeister]