18 arguments: bool -> Time.time -> string, |
18 arguments: bool -> Time.time -> string, |
19 has_incomplete_mode: bool, |
19 has_incomplete_mode: bool, |
20 proof_delims: (string * string) list, |
20 proof_delims: (string * string) list, |
21 known_failures: (failure * string) list, |
21 known_failures: (failure * string) list, |
22 default_max_relevant: int, |
22 default_max_relevant: int, |
23 default_theory_relevant: bool, |
|
24 explicit_forall: bool, |
23 explicit_forall: bool, |
25 use_conjecture_for_hypotheses: bool} |
24 use_conjecture_for_hypotheses: bool} |
26 |
25 |
27 val string_for_failure : failure -> string |
26 val string_for_failure : failure -> string |
28 val known_failure_in_output : |
27 val known_failure_in_output : |
51 arguments: bool -> Time.time -> string, |
50 arguments: bool -> Time.time -> string, |
52 has_incomplete_mode: bool, |
51 has_incomplete_mode: bool, |
53 proof_delims: (string * string) list, |
52 proof_delims: (string * string) list, |
54 known_failures: (failure * string) list, |
53 known_failures: (failure * string) list, |
55 default_max_relevant: int, |
54 default_max_relevant: int, |
56 default_theory_relevant: bool, |
|
57 explicit_forall: bool, |
55 explicit_forall: bool, |
58 use_conjecture_for_hypotheses: bool} |
56 use_conjecture_for_hypotheses: bool} |
59 |
57 |
60 val missing_message_tail = |
58 val missing_message_tail = |
61 " appears to be missing. You will need to install it if you want to run \ |
59 " appears to be missing. You will need to install it if you want to run \ |
158 (OutOfResources, |
156 (OutOfResources, |
159 "# Cannot determine problem status within resource limit"), |
157 "# Cannot determine problem status within resource limit"), |
160 (OutOfResources, "SZS status: ResourceOut"), |
158 (OutOfResources, "SZS status: ResourceOut"), |
161 (OutOfResources, "SZS status ResourceOut")], |
159 (OutOfResources, "SZS status ResourceOut")], |
162 default_max_relevant = 500 (* FUDGE *), |
160 default_max_relevant = 500 (* FUDGE *), |
163 default_theory_relevant = false, |
|
164 explicit_forall = false, |
161 explicit_forall = false, |
165 use_conjecture_for_hypotheses = true} |
162 use_conjecture_for_hypotheses = true} |
166 |
163 |
167 val e = ("e", e_config) |
164 val e = ("e", e_config) |
168 |
165 |
185 (OutOfResources, "SPASS beiseite: Maximal number of loops exceeded"), |
182 (OutOfResources, "SPASS beiseite: Maximal number of loops exceeded"), |
186 (MalformedInput, "Undefined symbol"), |
183 (MalformedInput, "Undefined symbol"), |
187 (MalformedInput, "Free Variable"), |
184 (MalformedInput, "Free Variable"), |
188 (SpassTooOld, "tptp2dfg")], |
185 (SpassTooOld, "tptp2dfg")], |
189 default_max_relevant = 350 (* FUDGE *), |
186 default_max_relevant = 350 (* FUDGE *), |
190 default_theory_relevant = true, |
|
191 explicit_forall = true, |
187 explicit_forall = true, |
192 use_conjecture_for_hypotheses = true} |
188 use_conjecture_for_hypotheses = true} |
193 |
189 |
194 val spass = ("spass", spass_config) |
190 val spass = ("spass", spass_config) |
195 |
191 |
215 (TimedOut, "SZS status Timeout"), |
211 (TimedOut, "SZS status Timeout"), |
216 (Unprovable, "Satisfiability detected"), |
212 (Unprovable, "Satisfiability detected"), |
217 (Unprovable, "Termination reason: Satisfiable"), |
213 (Unprovable, "Termination reason: Satisfiable"), |
218 (VampireTooOld, "not a valid option")], |
214 (VampireTooOld, "not a valid option")], |
219 default_max_relevant = 400 (* FUDGE *), |
215 default_max_relevant = 400 (* FUDGE *), |
220 default_theory_relevant = false, |
|
221 explicit_forall = false, |
216 explicit_forall = false, |
222 use_conjecture_for_hypotheses = true} |
217 use_conjecture_for_hypotheses = true} |
223 |
218 |
224 val vampire = ("vampire", vampire_config) |
219 val vampire = ("vampire", vampire_config) |
225 |
220 |
254 case get_system name versions of |
249 case get_system name versions of |
255 NONE => error ("System " ^ quote name ^ " not available at SystemOnTPTP.") |
250 NONE => error ("System " ^ quote name ^ " not available at SystemOnTPTP.") |
256 | SOME sys => sys |
251 | SOME sys => sys |
257 |
252 |
258 fun remote_config system_name system_versions proof_delims known_failures |
253 fun remote_config system_name system_versions proof_delims known_failures |
259 default_max_relevant default_theory_relevant |
254 default_max_relevant use_conjecture_for_hypotheses |
260 use_conjecture_for_hypotheses : prover_config = |
255 : prover_config = |
261 {exec = ("ISABELLE_ATP", "scripts/remote_atp"), |
256 {exec = ("ISABELLE_ATP", "scripts/remote_atp"), |
262 required_execs = [], |
257 required_execs = [], |
263 arguments = fn _ => fn timeout => |
258 arguments = fn _ => fn timeout => |
264 " -t " ^ string_of_int (to_secs 0 timeout) ^ " -s " ^ |
259 " -t " ^ string_of_int (to_secs 0 timeout) ^ " -s " ^ |
265 the_system system_name system_versions, |
260 the_system system_name system_versions, |
267 proof_delims = insert (op =) tstp_proof_delims proof_delims, |
262 proof_delims = insert (op =) tstp_proof_delims proof_delims, |
268 known_failures = |
263 known_failures = |
269 known_failures @ known_perl_failures @ |
264 known_failures @ known_perl_failures @ |
270 [(TimedOut, "says Timeout")], |
265 [(TimedOut, "says Timeout")], |
271 default_max_relevant = default_max_relevant, |
266 default_max_relevant = default_max_relevant, |
272 default_theory_relevant = default_theory_relevant, |
|
273 explicit_forall = true, |
267 explicit_forall = true, |
274 use_conjecture_for_hypotheses = use_conjecture_for_hypotheses} |
268 use_conjecture_for_hypotheses = use_conjecture_for_hypotheses} |
275 |
269 |
276 fun remotify_config system_name system_versions |
270 fun remotify_config system_name system_versions |
277 ({proof_delims, known_failures, default_max_relevant, |
271 ({proof_delims, known_failures, default_max_relevant, |
278 default_theory_relevant, use_conjecture_for_hypotheses, ...} |
272 use_conjecture_for_hypotheses, ...} : prover_config) : prover_config = |
279 : prover_config) : prover_config = |
|
280 remote_config system_name system_versions proof_delims known_failures |
273 remote_config system_name system_versions proof_delims known_failures |
281 default_max_relevant default_theory_relevant |
274 default_max_relevant use_conjecture_for_hypotheses |
282 use_conjecture_for_hypotheses |
|
283 |
275 |
284 val remotify_name = prefix "remote_" |
276 val remotify_name = prefix "remote_" |
285 fun remote_prover name system_name system_versions proof_delims known_failures |
277 fun remote_prover name system_name system_versions proof_delims known_failures |
286 default_max_relevant default_theory_relevant |
278 default_max_relevant use_conjecture_for_hypotheses = |
287 use_conjecture_for_hypotheses = |
|
288 (remotify_name name, |
279 (remotify_name name, |
289 remote_config system_name system_versions proof_delims known_failures |
280 remote_config system_name system_versions proof_delims known_failures |
290 default_max_relevant default_theory_relevant |
281 default_max_relevant use_conjecture_for_hypotheses) |
291 use_conjecture_for_hypotheses) |
|
292 fun remotify_prover (name, config) system_name system_versions = |
282 fun remotify_prover (name, config) system_name system_versions = |
293 (remotify_name name, remotify_config system_name system_versions config) |
283 (remotify_name name, remotify_config system_name system_versions config) |
294 |
284 |
295 val remote_e = remotify_prover e "EP" ["1.0", "1.1", "1.2"] |
285 val remote_e = remotify_prover e "EP" ["1.0", "1.1", "1.2"] |
296 val remote_vampire = remotify_prover vampire "Vampire" ["9.0", "1.0", "0.6"] |
286 val remote_vampire = remotify_prover vampire "Vampire" ["9.0", "1.0", "0.6"] |
297 val remote_sine_e = |
287 val remote_sine_e = |
298 remote_prover "sine_e" "SInE" [] [] [(Unprovable, "says Unknown")] |
288 remote_prover "sine_e" "SInE" [] [] [(Unprovable, "says Unknown")] |
299 1000 (* FUDGE *) false true |
289 1000 (* FUDGE *) true |
300 val remote_snark = |
290 val remote_snark = |
301 remote_prover "snark" "SNARK---" [] [("refutation.", "end_refutation.")] [] |
291 remote_prover "snark" "SNARK---" [] [("refutation.", "end_refutation.")] [] |
302 350 (* FUDGE *) false true |
292 350 (* FUDGE *) true |
303 |
293 |
304 (* Setup *) |
294 (* Setup *) |
305 |
295 |
306 fun is_installed ({exec, required_execs, ...} : prover_config) = |
296 fun is_installed ({exec, required_execs, ...} : prover_config) = |
307 forall (curry (op <>) "" o getenv o fst) (exec :: required_execs) |
297 forall (curry (op <>) "" o getenv o fst) (exec :: required_execs) |