294 |> lines_of_atp_problem format ord ord_info |
294 |> lines_of_atp_problem format ord ord_info |
295 |> cons ("% " ^ command ^ "\n" ^ (if comment = "" then "" else "% " ^ comment ^ "\n")) |
295 |> cons ("% " ^ command ^ "\n" ^ (if comment = "" then "" else "% " ^ comment ^ "\n")) |
296 |> File.write_list prob_path |
296 |> File.write_list prob_path |
297 |
297 |
298 val ((output, run_time), (atp_proof, outcome)) = |
298 val ((output, run_time), (atp_proof, outcome)) = |
299 TimeLimit.timeLimit generous_slice_timeout Isabelle_System.bash_output command |
299 Timeout.apply generous_slice_timeout Isabelle_System.bash_output command |
300 |>> (if overlord then prefix ("% " ^ command ^ "\n% " ^ timestamp () ^ "\n") else I) |
300 |>> (if overlord then prefix ("% " ^ command ^ "\n% " ^ timestamp () ^ "\n") else I) |
301 |> fst |> split_time |
301 |> fst |> split_time |
302 |> (fn accum as (output, _) => |
302 |> (fn accum as (output, _) => |
303 (accum, |
303 (accum, |
304 extract_tstplike_proof_and_outcome verbose proof_delims known_failures output |
304 extract_tstplike_proof_and_outcome verbose proof_delims known_failures output |
305 |>> atp_proof_of_tstplike_proof (perhaps (try (unprefix remote_prefix)) name) |
305 |>> atp_proof_of_tstplike_proof (perhaps (try (unprefix remote_prefix)) name) |
306 atp_problem |
306 atp_problem |
307 handle UNRECOGNIZED_ATP_PROOF () => ([], SOME ProofUnparsable))) |
307 handle UNRECOGNIZED_ATP_PROOF () => ([], SOME ProofUnparsable))) |
308 handle TimeLimit.TimeOut => (("", slice_timeout), ([], SOME TimedOut)) |
308 handle Timeout.TIMEOUT _ => (("", slice_timeout), ([], SOME TimedOut)) |
309 |
309 |
310 val outcome = |
310 val outcome = |
311 (case outcome of |
311 (case outcome of |
312 NONE => |
312 NONE => |
313 (case used_facts_in_unsound_atp_proof ctxt (map fst facts) atp_proof of |
313 (case used_facts_in_unsound_atp_proof ctxt (map fst facts) atp_proof of |