| author | wenzelm |
| Tue, 17 Sep 2024 11:14:25 +0200 | |
| changeset 80894 | 3e0ca6af6738 |
| parent 73568 | bdba138d462d |
| permissions | -rw-r--r-- |
|
73418
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
1 |
(* Title: HOL/Tools/ATP/system_on_tptp.ML |
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
2 |
Author: Makarius |
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
3 |
|
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
4 |
Support for remote ATPs via SystemOnTPTP. |
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
5 |
*) |
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
6 |
|
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
7 |
signature SYSTEM_ON_TPTP = |
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
8 |
sig |
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
9 |
val get_url: unit -> string |
|
73424
2b657a70116c
clarified signature: url may change dynamically and is part of result;
wenzelm
parents:
73419
diff
changeset
|
10 |
val list_systems: unit -> {url: string, systems: string list}
|
|
73568
bdba138d462d
clarified signature: more structured arguments, notably for remote provers;
wenzelm
parents:
73435
diff
changeset
|
11 |
val run_system_encoded: string list -> {output: string, timing: Time.time}
|
|
73434
00b77365552e
clarified signature: refer to file name instead of file content;
wenzelm
parents:
73431
diff
changeset
|
12 |
val run_system: {system: string, problem: Path.T, extra: string, timeout: Time.time} ->
|
|
73431
f27d7b12e8a4
support for SystemOnTPTP.run_system, with strict error following scripts/remote_atp;
wenzelm
parents:
73430
diff
changeset
|
13 |
{output: string, timing: Time.time}
|
|
73418
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
14 |
end |
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
15 |
|
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
16 |
structure SystemOnTPTP: SYSTEM_ON_TPTP = |
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
17 |
struct |
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
18 |
|
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
19 |
fun get_url () = Options.default_string \<^system_option>\<open>SystemOnTPTP\<close> |
|
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
20 |
|
|
73424
2b657a70116c
clarified signature: url may change dynamically and is part of result;
wenzelm
parents:
73419
diff
changeset
|
21 |
fun list_systems () = |
|
2b657a70116c
clarified signature: url may change dynamically and is part of result;
wenzelm
parents:
73419
diff
changeset
|
22 |
let |
|
2b657a70116c
clarified signature: url may change dynamically and is part of result;
wenzelm
parents:
73419
diff
changeset
|
23 |
val url = get_url () |
| 73430 | 24 |
val systems = trim_split_lines (\<^scala>\<open>SystemOnTPTP.list_systems\<close> url) |
|
73424
2b657a70116c
clarified signature: url may change dynamically and is part of result;
wenzelm
parents:
73419
diff
changeset
|
25 |
in {url = url, systems = systems} end
|
|
73418
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
26 |
|
|
73435
1cc848548f21
invoke remote ATP via SystemOnTPTP.run_systems from Isabelle/Scala (without perl);
wenzelm
parents:
73434
diff
changeset
|
27 |
fun run_system_encoded args = |
|
73568
bdba138d462d
clarified signature: more structured arguments, notably for remote provers;
wenzelm
parents:
73435
diff
changeset
|
28 |
(get_url () :: args) |
|
73431
f27d7b12e8a4
support for SystemOnTPTP.run_system, with strict error following scripts/remote_atp;
wenzelm
parents:
73430
diff
changeset
|
29 |
|> \<^scala>\<open>SystemOnTPTP.run_system\<close> |
|
73568
bdba138d462d
clarified signature: more structured arguments, notably for remote provers;
wenzelm
parents:
73435
diff
changeset
|
30 |
|> (fn [a, b] => {output = a, timing = Time.fromMilliseconds (Value.parse_int b)})
|
|
73431
f27d7b12e8a4
support for SystemOnTPTP.run_system, with strict error following scripts/remote_atp;
wenzelm
parents:
73430
diff
changeset
|
31 |
|
|
73435
1cc848548f21
invoke remote ATP via SystemOnTPTP.run_systems from Isabelle/Scala (without perl);
wenzelm
parents:
73434
diff
changeset
|
32 |
fun run_system {system, problem, extra, timeout} =
|
|
73568
bdba138d462d
clarified signature: more structured arguments, notably for remote provers;
wenzelm
parents:
73435
diff
changeset
|
33 |
[system, Isabelle_System.absolute_path problem, extra, string_of_int (Time.toMilliseconds timeout)] |
|
73435
1cc848548f21
invoke remote ATP via SystemOnTPTP.run_systems from Isabelle/Scala (without perl);
wenzelm
parents:
73434
diff
changeset
|
34 |
|> run_system_encoded |
|
1cc848548f21
invoke remote ATP via SystemOnTPTP.run_systems from Isabelle/Scala (without perl);
wenzelm
parents:
73434
diff
changeset
|
35 |
|
|
73418
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
wenzelm
parents:
diff
changeset
|
36 |
end |