src/HOL/Tools/ATP_Manager/atp_wrapper.ML
changeset 36286 fa6d03d42aab
parent 36284 0e24322474a4
child 36287 96f45c5ffb36
equal deleted inserted replaced
36285:d868b34d604c 36286:fa6d03d42aab
   117          args, File.shell_path probfile] ^ " ; } 2>&1"
   117          args, File.shell_path probfile] ^ " ; } 2>&1"
   118        else
   118        else
   119          space_implode " " ["exec", File.shell_path cmd, args,
   119          space_implode " " ["exec", File.shell_path cmd, args,
   120          File.shell_path probfile, "2>&1"]) ^
   120          File.shell_path probfile, "2>&1"]) ^
   121       (if overlord then
   121       (if overlord then
   122          " | sed 's/,/, /g' | sed 's/\\([=|]\\)/ \\1 /g' | sed 's/! =/ !=/g' \
   122          " | sed 's/,/, /g' \
   123          \| sed 's/  / /g'"
   123          \| sed 's/\\([^!=]\\)\\([=|]\\)\\([^=]\\)/\\1 \\2 \\3/g' \
       
   124          \| sed 's/! =/ !=/g' \
       
   125          \| sed 's/  / /g' | sed 's/| |/||/g' \
       
   126          \| sed 's/ = = =/===/g' \
       
   127          \| sed 's/= = /== /g'"
   124        else
   128        else
   125          "")
   129          "")
   126     fun split_time s =
   130     fun split_time s =
   127       let
   131       let
   128         val split = String.tokens (fn c => str c = "\n");
   132         val split = String.tokens (fn c => str c = "\n");
   333 val remote_known_failures =
   337 val remote_known_failures =
   334   [(["Remote-script could not extract proof"],
   338   [(["Remote-script could not extract proof"],
   335     "Error: The remote ATP proof is ill-formed.")]
   339     "Error: The remote ATP proof is ill-formed.")]
   336 
   340 
   337 fun remote_prover_config prover_prefix args
   341 fun remote_prover_config prover_prefix args
   338         ({known_failures, max_new_clauses, prefers_theory_relevant, ...}
   342         ({known_failures, max_new_clauses, prefers_theory_relevant,
       
   343           supports_isar_proofs, ...}
   339          : prover_config) : prover_config =
   344          : prover_config) : prover_config =
   340   {command = Path.explode "$ISABELLE_ATP_MANAGER/SystemOnTPTP",
   345   {command = Path.explode "$ISABELLE_ATP_MANAGER/SystemOnTPTP",
   341    arguments = (fn timeout =>
   346    arguments = (fn timeout =>
   342      args ^ " -t " ^ string_of_int (generous_to_secs timeout) ^ " -s " ^
   347      args ^ " -t " ^ string_of_int (generous_to_secs timeout) ^ " -s " ^
   343      the_system prover_prefix),
   348      the_system prover_prefix),
   344    known_failures = remote_known_failures @ known_failures,
   349    known_failures = remote_known_failures @ known_failures,
   345    max_new_clauses = max_new_clauses,
   350    max_new_clauses = max_new_clauses,
   346    prefers_theory_relevant = prefers_theory_relevant,
   351    prefers_theory_relevant = prefers_theory_relevant,
   347    supports_isar_proofs = false}
   352    supports_isar_proofs = supports_isar_proofs}
   348 
   353 
   349 val remote_vampire =
   354 val remote_vampire =
   350   tptp_prover "remote_vampire"
   355   tptp_prover "remote_vampire"
   351               (remote_prover_config "Vampire---9" "" vampire_config)
   356               (remote_prover_config "Vampire---9" "" vampire_config)
   352 
   357