--- 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]