| author | desharna | 
| Tue, 28 Sep 2021 17:14:21 +0200 | |
| changeset 74393 | 776b74a99449 | 
| 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: 
73419diff
changeset | 10 |   val list_systems: unit -> {url: string, systems: string list}
 | 
| 73568 
bdba138d462d
clarified signature: more structured arguments, notably for remote provers;
 wenzelm parents: 
73435diff
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: 
73431diff
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: 
73430diff
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: 
73419diff
changeset | 21 | fun list_systems () = | 
| 
2b657a70116c
clarified signature: url may change dynamically and is part of result;
 wenzelm parents: 
73419diff
changeset | 22 | let | 
| 
2b657a70116c
clarified signature: url may change dynamically and is part of result;
 wenzelm parents: 
73419diff
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: 
73419diff
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: 
73434diff
changeset | 27 | fun run_system_encoded args = | 
| 73568 
bdba138d462d
clarified signature: more structured arguments, notably for remote provers;
 wenzelm parents: 
73435diff
changeset | 28 | (get_url () :: args) | 
| 73431 
f27d7b12e8a4
support for SystemOnTPTP.run_system, with strict error following scripts/remote_atp;
 wenzelm parents: 
73430diff
changeset | 29 | |> \<^scala>\<open>SystemOnTPTP.run_system\<close> | 
| 73568 
bdba138d462d
clarified signature: more structured arguments, notably for remote provers;
 wenzelm parents: 
73435diff
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: 
73430diff
changeset | 31 | |
| 73435 
1cc848548f21
invoke remote ATP via SystemOnTPTP.run_systems from Isabelle/Scala (without perl);
 wenzelm parents: 
73434diff
changeset | 32 | fun run_system {system, problem, extra, timeout} =
 | 
| 73568 
bdba138d462d
clarified signature: more structured arguments, notably for remote provers;
 wenzelm parents: 
73435diff
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: 
73434diff
changeset | 34 | |> run_system_encoded | 
| 
1cc848548f21
invoke remote ATP via SystemOnTPTP.run_systems from Isabelle/Scala (without perl);
 wenzelm parents: 
73434diff
changeset | 35 | |
| 73418 
7d7d959547a1
support for SystemOnTPTP in Isabelle/ML and Isabelle/Scala (without perl);
 wenzelm parents: diff
changeset | 36 | end |