74 val TH1 = THF (Polymorphic, {with_ite = true, with_let = true}, THF_With_Choice) |
75 val TH1 = THF (Polymorphic, {with_ite = true, with_let = true}, THF_With_Choice) |
75 |
76 |
76 val default_max_mono_iters = 3 (* FUDGE *) |
77 val default_max_mono_iters = 3 (* FUDGE *) |
77 val default_max_new_mono_instances = 100 (* FUDGE *) |
78 val default_max_new_mono_instances = 100 (* FUDGE *) |
78 |
79 |
79 type atp_slice = (int * string) * atp_format * string * string * bool * string |
80 type base_slice = int * string |
|
81 type atp_slice = atp_format * string * string * bool * string |
80 |
82 |
81 type atp_config = |
83 type atp_config = |
82 {exec : string list * string list, |
84 {exec : string list * string list, |
83 arguments : Proof.context -> bool -> string -> Time.time -> Path.T -> |
85 arguments : Proof.context -> bool -> string -> Time.time -> Path.T -> |
84 term_order * (unit -> (string * int) list) * (unit -> (string * real) list) -> string list, |
86 term_order * (unit -> (string * int) list) * (unit -> (string * real) list) -> string list, |
85 proof_delims : (string * string) list, |
87 proof_delims : (string * string) list, |
86 known_failures : (atp_failure * string) list, |
88 known_failures : (atp_failure * string) list, |
87 prem_role : atp_formula_role, |
89 prem_role : atp_formula_role, |
88 best_slices : Proof.context -> atp_slice list, |
90 good_slices : Proof.context -> (base_slice * atp_slice) list, |
89 best_max_mono_iters : int, |
91 good_max_mono_iters : int, |
90 best_max_new_mono_instances : int} |
92 good_max_new_mono_instances : int} |
91 |
93 |
92 (* "best_slices" must be found empirically, taking a holistic approach since the |
94 (* "good_slices" must be found empirically, taking a holistic approach since the |
93 ATPs are run in parallel. Each slice has the format |
95 ATPs are run in parallel. Each slice has the format |
94 |
96 |
95 (time_frac, ((max_facts, fact_filter), format, type_enc, |
97 (time_frac, ((max_facts, fact_filter), format, type_enc, |
96 lam_trans, uncurried_aliases), extra) |
98 lam_trans, uncurried_aliases), extra) |
97 |
99 |
298 else |
300 else |
299 (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Lambda_Free), "mono_native_higher", combsN) |
301 (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Lambda_Free), "mono_native_higher", combsN) |
300 in |
302 in |
301 (* FUDGE *) |
303 (* FUDGE *) |
302 if heuristic = e_smartN then |
304 if heuristic = e_smartN then |
303 [((128, meshN), format, enc, main_lam_trans, false, e_fun_weightN), |
305 [((128, meshN), (format, enc, main_lam_trans, false, e_fun_weightN)), |
304 ((128, mashN), format, enc, main_lam_trans, false, e_sym_offset_weightN), |
306 ((128, mashN), (format, enc, main_lam_trans, false, e_sym_offset_weightN)), |
305 ((91, mepoN), format, enc, main_lam_trans, false, e_autoN), |
307 ((91, mepoN), (format, enc, main_lam_trans, false, e_autoN)), |
306 ((1000, meshN), format, "poly_guards??", main_lam_trans, false, e_sym_offset_weightN), |
308 ((1000, meshN), (format, "poly_guards??", main_lam_trans, false, e_sym_offset_weightN)), |
307 ((256, mepoN), format, enc, liftingN, false, e_fun_weightN), |
309 ((256, mepoN), (format, enc, liftingN, false, e_fun_weightN)), |
308 ((64, mashN), format, enc, combsN, false, e_fun_weightN)] |
310 ((64, mashN), (format, enc, combsN, false, e_fun_weightN))] |
309 else |
311 else |
310 [((500, meshN), format, enc, combsN, false, heuristic)] |
312 [((500, meshN), (format, enc, combsN, false, heuristic))] |
311 end, |
313 end, |
312 best_max_mono_iters = default_max_mono_iters, |
314 good_max_mono_iters = default_max_mono_iters, |
313 best_max_new_mono_instances = default_max_new_mono_instances} |
315 good_max_new_mono_instances = default_max_new_mono_instances} |
314 |
316 |
315 val e = (eN, fn () => e_config) |
317 val e = (eN, fn () => e_config) |
316 |
318 |
317 |
319 |
318 (* iProver *) |
320 (* iProver *) |
432 (MalformedInput, "Undefined symbol"), |
434 (MalformedInput, "Undefined symbol"), |
433 (MalformedInput, "Free Variable"), |
435 (MalformedInput, "Free Variable"), |
434 (Unprovable, "No formulae and clauses found in input file"), |
436 (Unprovable, "No formulae and clauses found in input file"), |
435 (InternalError, "Please report this error")], |
437 (InternalError, "Please report this error")], |
436 prem_role = Conjecture, |
438 prem_role = Conjecture, |
437 best_slices = fn _ => |
439 good_slices = |
438 (* FUDGE *) |
440 (* FUDGE *) |
439 [((150, meshN), format, "mono_native", combsN, true, ""), |
441 K [((150, meshN), (format, "mono_native", combsN, true, "")), |
440 ((500, meshN), format, "mono_native", liftingN, true, spass_H2SOS), |
442 ((500, meshN), (format, "mono_native", liftingN, true, spass_H2SOS)), |
441 ((50, meshN), format, "mono_native", liftingN, true, spass_H2LR0LT0), |
443 ((50, meshN), (format, "mono_native", liftingN, true, spass_H2LR0LT0)), |
442 ((250, meshN), format, "mono_native", combsN, true, spass_H2NuVS0), |
444 ((250, meshN), (format, "mono_native", combsN, true, spass_H2NuVS0)), |
443 ((1000, mepoN), format, "mono_native", liftingN, true, spass_H1SOS), |
445 ((1000, mepoN), (format, "mono_native", liftingN, true, spass_H1SOS)), |
444 ((150, meshN), format, "poly_guards??", liftingN, false, spass_H2NuVS0Red2), |
446 ((150, meshN), (format, "poly_guards??", liftingN, false, spass_H2NuVS0Red2)), |
445 ((300, meshN), format, "mono_native", combsN, true, spass_H2SOS), |
447 ((300, meshN), (format, "mono_native", combsN, true, spass_H2SOS)), |
446 ((100, meshN), format, "mono_native", combs_and_liftingN, true, spass_H2)], |
448 ((100, meshN), (format, "mono_native", combs_and_liftingN, true, spass_H2))], |
447 best_max_mono_iters = default_max_mono_iters, |
449 good_max_mono_iters = default_max_mono_iters, |
448 best_max_new_mono_instances = default_max_new_mono_instances} |
450 good_max_new_mono_instances = default_max_new_mono_instances} |
449 end |
451 end |
450 |
452 |
451 val spass = (spassN, fn () => spass_config) |
453 val spass = (spassN, fn () => spass_config) |
452 |
454 |
453 |
455 |
478 (Unprovable, "Satisfiability detected"), |
480 (Unprovable, "Satisfiability detected"), |
479 (Unprovable, "Termination reason: Satisfiable"), |
481 (Unprovable, "Termination reason: Satisfiable"), |
480 (Interrupted, "Aborted by signal SIGINT")] @ |
482 (Interrupted, "Aborted by signal SIGINT")] @ |
481 known_szs_status_failures, |
483 known_szs_status_failures, |
482 prem_role = Hypothesis, |
484 prem_role = Hypothesis, |
483 best_slices = fn ctxt => |
485 good_slices = |
484 (* FUDGE *) |
486 (* FUDGE *) |
485 [((500, meshN), TX1, "mono_native_fool", combs_or_liftingN, false, sosN), |
487 K [((500, meshN), (TX1, "mono_native_fool", combs_or_liftingN, false, sosN)), |
486 ((150, meshN), TX1, "poly_native_fool", combs_or_liftingN, false, sosN), |
488 ((150, meshN), (TX1, "poly_native_fool", combs_or_liftingN, false, sosN)), |
487 ((50, meshN), TX1, "mono_native_fool", combs_or_liftingN, false, no_sosN)], |
489 ((50, meshN), (TX1, "mono_native_fool", combs_or_liftingN, false, no_sosN))], |
488 best_max_mono_iters = default_max_mono_iters, |
490 good_max_mono_iters = default_max_mono_iters, |
489 best_max_new_mono_instances = 2 * default_max_new_mono_instances (* FUDGE *)} |
491 good_max_new_mono_instances = 2 * default_max_new_mono_instances (* FUDGE *)} |
490 |
492 |
491 val vampire = (vampireN, fn () => vampire_config) |
493 val vampire = (vampireN, fn () => vampire_config) |
492 |
494 |
493 |
495 |
494 (* Z3 with TPTP syntax (half experimental, half legacy) *) |
496 (* Z3 with TPTP syntax (half experimental, half legacy) *) |
498 arguments = fn _ => fn _ => fn _ => fn timeout => fn problem => fn _ => |
500 arguments = fn _ => fn _ => fn _ => fn timeout => fn problem => fn _ => |
499 ["-proof -t:" ^ string_of_int (to_secs 1 timeout) ^ " -file:" ^ File.bash_path problem], |
501 ["-proof -t:" ^ string_of_int (to_secs 1 timeout) ^ " -file:" ^ File.bash_path problem], |
500 proof_delims = [("SZS status Theorem", "")], |
502 proof_delims = [("SZS status Theorem", "")], |
501 known_failures = known_szs_status_failures, |
503 known_failures = known_szs_status_failures, |
502 prem_role = Hypothesis, |
504 prem_role = Hypothesis, |
503 best_slices = |
505 good_slices = |
504 (* FUDGE *) |
506 (* FUDGE *) |
505 K [((250, meshN), TF0, "mono_native", combsN, false, ""), |
507 K [((250, meshN), (TF0, "mono_native", combsN, false, "")), |
506 ((125, mepoN), TF0, "mono_native", combsN, false, ""), |
508 ((125, mepoN), (TF0, "mono_native", combsN, false, "")), |
507 ((62, mashN), TF0, "mono_native", combsN, false, ""), |
509 ((62, mashN), (TF0, "mono_native", combsN, false, "")), |
508 ((31, meshN), TF0, "mono_native", combsN, false, "")], |
510 ((31, meshN), (TF0, "mono_native", combsN, false, ""))], |
509 best_max_mono_iters = default_max_mono_iters, |
511 good_max_mono_iters = default_max_mono_iters, |
510 best_max_new_mono_instances = 2 * default_max_new_mono_instances (* FUDGE *)} |
512 good_max_new_mono_instances = 2 * default_max_new_mono_instances (* FUDGE *)} |
511 |
513 |
512 val z3_tptp = (z3_tptpN, fn () => z3_tptp_config) |
514 val z3_tptp = (z3_tptpN, fn () => z3_tptp_config) |
513 |
515 |
514 |
516 |
515 (* Zipperposition *) |
517 (* Zipperposition *) |
526 proof_delims = tstp_proof_delims, |
528 proof_delims = tstp_proof_delims, |
527 known_failures = |
529 known_failures = |
528 [(TimedOut, "SZS status ResourceOut")] @ (* odd way of timing out *) |
530 [(TimedOut, "SZS status ResourceOut")] @ (* odd way of timing out *) |
529 known_szs_status_failures, |
531 known_szs_status_failures, |
530 prem_role = Hypothesis, |
532 prem_role = Hypothesis, |
531 best_slices = fn _ => |
533 good_slices = |
532 [((512, meshN), format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --tptp-def-as-rewrite --rewrite-before-cnf=true --max-inferences=1 --ho-unif-max-depth=1 --ho-max-elims=0 --ho-max-app-projections=0 --ho-max-rigid-imitations=1 --ho-max-identifications=0 --boolean-reasoning=bool-hoist --bool-hoist-simpl=true --bool-select=LI --recognize-injectivity=true --ext-rules=ext-family --ext-rules-max-depth=1 --ho-choice-inst=true --ho-prim-enum=none --ho-elim-leibniz=0 --interpret-bool-funs=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --ho-unif-level=pragmatic-framework --select=bb+e-selection2 --post-cnf-lambda-lifting=true -q \"4|prefer-sos|pnrefined(2,1,1,1,2,2,2)\" -q \"6|prefer-processed|conjecture-relative-struct(1.5,3.5,2,3)\" -q \"1|const|fifo\" -q \"4|prefer-ground|orient-lmax(2,1,2,1,1)\" -q \"4|defer-sos|conjecture-relative-struct(1,5,2,3)\" --avatar=off --recognize-injectivity=true --ho-neg-ext=true --e-timeout=2 --ho-pattern-decider=true --ho-fixpoint-decider=true --e-max-derived=50 --ignore-orphans=true --e-auto=true --presaturate=true --e-call-point=0.1"), |
534 K [((512, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --tptp-def-as-rewrite --rewrite-before-cnf=true --max-inferences=1 --ho-unif-max-depth=1 --ho-max-elims=0 --ho-max-app-projections=0 --ho-max-rigid-imitations=1 --ho-max-identifications=0 --boolean-reasoning=bool-hoist --bool-hoist-simpl=true --bool-select=LI --recognize-injectivity=true --ext-rules=ext-family --ext-rules-max-depth=1 --ho-choice-inst=true --ho-prim-enum=none --ho-elim-leibniz=0 --interpret-bool-funs=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --ho-unif-level=pragmatic-framework --select=bb+e-selection2 --post-cnf-lambda-lifting=true -q \"4|prefer-sos|pnrefined(2,1,1,1,2,2,2)\" -q \"6|prefer-processed|conjecture-relative-struct(1.5,3.5,2,3)\" -q \"1|const|fifo\" -q \"4|prefer-ground|orient-lmax(2,1,2,1,1)\" -q \"4|defer-sos|conjecture-relative-struct(1,5,2,3)\" --avatar=off --recognize-injectivity=true --ho-neg-ext=true --e-timeout=2 --ho-pattern-decider=true --ho-fixpoint-decider=true --e-max-derived=50 --ignore-orphans=true --e-auto=true --presaturate=true --e-call-point=0.1")), |
533 ((256, mashN), format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=ext-family --ext-rules-max-depth=1 --ho-prim-enum=none --avatar=off --recognize-injectivity=true --ho-elim-leibniz=1 --ho-unif-level=pragmatic-framework --no-max-vars --max-inferences=2 --ho-unif-max-depth=1 -q \"6|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"6|const|conjecture-relative-var(1.02,l,f)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-var(1,l,f)\" -q \"4|prefer-easy-ho|conjecture-relative-var(1.01,s,f)\" --select=e-selection16 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=3 --e-auto=true --sine=50 --sine-tolerance=1.0 --sine-depth-max=3 --sine-depth-min=1 --sine-trim-implications=true --ho-unif-level=pragmatic-framework --e-encode-lambdas=lift --scan-clause-ac=false --kbo-weight-fun=lambda-def-invfreqrank --e-call-point=0.1"), |
535 ((256, mashN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=ext-family --ext-rules-max-depth=1 --ho-prim-enum=none --avatar=off --recognize-injectivity=true --ho-elim-leibniz=1 --ho-unif-level=pragmatic-framework --no-max-vars --max-inferences=2 --ho-unif-max-depth=1 -q \"6|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"6|const|conjecture-relative-var(1.02,l,f)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-var(1,l,f)\" -q \"4|prefer-easy-ho|conjecture-relative-var(1.01,s,f)\" --select=e-selection16 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=3 --e-auto=true --sine=50 --sine-tolerance=1.0 --sine-depth-max=3 --sine-depth-min=1 --sine-trim-implications=true --ho-unif-level=pragmatic-framework --e-encode-lambdas=lift --scan-clause-ac=false --kbo-weight-fun=lambda-def-invfreqrank --e-call-point=0.1")), |
534 ((128, mepoN), format, "mono_native_higher_fool", keep_lamsN, false, "-nc --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=off --ho-prim-enum=full --ho-prim-max=1 --avatar=off --recognize-injectivity=true --ho-elim-leibniz=4 --ho-unif-level=full-framework --no-max-vars -q \"2|prefer-goals|conjecture-relative-e(0.5,1,100,100,100,100,1.5,1.5,1)\" -q \"4|const|conjecture-relative-e(0.1,1,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-e(0.5,1,100,100,100,100,1.5,1.5,1.5)\" -q \"4|prefer-sos|pnrefined(1,1,1,1,2,1.5,2)\" --select=ho-selection5 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=5 --e-call-point=0.25 --e-auto=true --sine=50 --sine-tolerance=2 --sine-depth-max=4 --sine-depth-min=1 --e-max-derived=96 --e-encode-lambdas=lift --scan-clause-ac=false --kbo-weight-fun=arity0 --prec-gen-fun=invfreq_conj"), |
536 ((128, mepoN), (format, "mono_native_higher_fool", keep_lamsN, false, "-nc --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=off --ho-prim-enum=full --ho-prim-max=1 --avatar=off --recognize-injectivity=true --ho-elim-leibniz=4 --ho-unif-level=full-framework --no-max-vars -q \"2|prefer-goals|conjecture-relative-e(0.5,1,100,100,100,100,1.5,1.5,1)\" -q \"4|const|conjecture-relative-e(0.1,1,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-e(0.5,1,100,100,100,100,1.5,1.5,1.5)\" -q \"4|prefer-sos|pnrefined(1,1,1,1,2,1.5,2)\" --select=ho-selection5 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=5 --e-call-point=0.25 --e-auto=true --sine=50 --sine-tolerance=2 --sine-depth-max=4 --sine-depth-min=1 --e-max-derived=96 --e-encode-lambdas=lift --scan-clause-ac=false --kbo-weight-fun=arity0 --prec-gen-fun=invfreq_conj")), |
535 ((1024, meshN), format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic -nc --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=ext-family --ext-rules-max-depth=1 --ho-prim-enum=none --avatar=off --recognize-injectivity=true --ho-elim-leibniz=1 --ho-unif-level=pragmatic-framework --no-max-vars --max-inferences=4 --ho-max-app-projections=1 --ho-max-elims=0 --ho-max-rigid-imitations=2 --ho-max-identifications=0 --ho-unif-max-depth=3 -q \"6|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"6|const|conjecture-relative-var(1.02,l,f)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-var(1,l,f)\" -q \"4|prefer-easy-ho|conjecture-relative-var(1.01,s,f)\" --select=e-selection7 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=7 --sine=50 --sine-tolerance=1 --sine-depth-max=2 --sine-depth-min=1 --e-max-derived=64 --sine-ignore-k-most-common-syms=2 --sine-trim-implications=true --e-encode-lambdas=lift --scan-clause-ac=false --lambdasup=0 --kbo-weight-fun=lambda-def-invfreqrank --demod-in-var-args=true --bool-demod=true --lambda-demod=true --e-call-point=0.1"), |
537 ((1024, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic -nc --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=ext-family --ext-rules-max-depth=1 --ho-prim-enum=none --avatar=off --recognize-injectivity=true --ho-elim-leibniz=1 --ho-unif-level=pragmatic-framework --no-max-vars --max-inferences=4 --ho-max-app-projections=1 --ho-max-elims=0 --ho-max-rigid-imitations=2 --ho-max-identifications=0 --ho-unif-max-depth=3 -q \"6|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"6|const|conjecture-relative-var(1.02,l,f)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-var(1,l,f)\" -q \"4|prefer-easy-ho|conjecture-relative-var(1.01,s,f)\" --select=e-selection7 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=7 --sine=50 --sine-tolerance=1 --sine-depth-max=2 --sine-depth-min=1 --e-max-derived=64 --sine-ignore-k-most-common-syms=2 --sine-trim-implications=true --e-encode-lambdas=lift --scan-clause-ac=false --lambdasup=0 --kbo-weight-fun=lambda-def-invfreqrank --demod-in-var-args=true --bool-demod=true --lambda-demod=true --e-call-point=0.1")), |
536 ((64, meshN), format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-comb-complete --boolean-reasoning=simpl-only --ext-rules=off --kbo-weight-fun=lambda-def-sqarity --ho-prim-enum=none --tptp-def-as-rewrite -q \"4|prefer-sos|orient-lmax(2,1,2,1,1)\" -q \"4|defer-sos|conjecture-relative-var(1,s,f)\" -q \"3|const|default\" -q \"1|prefer-processed|fifo\" --ho-elim-leibniz=1 --select=NoSelection --solve-formulas=true --lazy-cnf=true --lazy-cnf-kind=simp --lazy-cnf-renaming-threshold=8 --sine=60 --sine-tolerance=2 --sine-depth-max=5 --sine-depth-min=1 --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=3 --e-auto=true --e-max-derived=50 --e-encode-lambdas=ignore --scan-clause-ac=false --presaturate=true --comb-b-penalty=3 --comb-c-penalty=3 --comb-k-penalty=1 --comb-s-penalty=5 --subvarsup=false --e-call-point=0.15"), |
538 ((64, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-comb-complete --boolean-reasoning=simpl-only --ext-rules=off --kbo-weight-fun=lambda-def-sqarity --ho-prim-enum=none --tptp-def-as-rewrite -q \"4|prefer-sos|orient-lmax(2,1,2,1,1)\" -q \"4|defer-sos|conjecture-relative-var(1,s,f)\" -q \"3|const|default\" -q \"1|prefer-processed|fifo\" --ho-elim-leibniz=1 --select=NoSelection --solve-formulas=true --lazy-cnf=true --lazy-cnf-kind=simp --lazy-cnf-renaming-threshold=8 --sine=60 --sine-tolerance=2 --sine-depth-max=5 --sine-depth-min=1 --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=3 --e-auto=true --e-max-derived=50 --e-encode-lambdas=ignore --scan-clause-ac=false --presaturate=true --comb-b-penalty=3 --comb-c-penalty=3 --comb-k-penalty=1 --comb-s-penalty=5 --subvarsup=false --e-call-point=0.15")), |
537 ((512, meshN), format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --boolean-reasoning=simpl-only --ho-unif-max-depth=0 --ho-prim-enum=none -q \"2|prefer-ho-steps|conjecture-relative-e(0.1,0.5,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"2|prefer-ground|default\" -q \"2|prefer-empty-trail|conjecture-relative-e(0.1,0.5,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-processed|fifo\" --select=bb+e-selection7 --ho-pattern-decider=false --ho-fixpoint-decider=true --ho-solid-decider=false --sine=150 --sine-tolerance=2 --sine-depth-max=3 --sine-depth-min=1 --prec-gen-fun=invfreqhack --lazy-cnf=true --lazy-cnf-kind=simp --lazy-cnf-renaming-threshold=2 --fluid-log-hoist=false --tptp-def-as-rewrite --rewrite-before-cnf=true --ho-prim-enum=eq --ho-prim-enum-add-var=true --ho-prim-max=1 --ho-prim-enum-early-bird=true -o tptp --avatar=eager --split-only-ground=true")], |
539 ((512, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --boolean-reasoning=simpl-only --ho-unif-max-depth=0 --ho-prim-enum=none -q \"2|prefer-ho-steps|conjecture-relative-e(0.1,0.5,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"2|prefer-ground|default\" -q \"2|prefer-empty-trail|conjecture-relative-e(0.1,0.5,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-processed|fifo\" --select=bb+e-selection7 --ho-pattern-decider=false --ho-fixpoint-decider=true --ho-solid-decider=false --sine=150 --sine-tolerance=2 --sine-depth-max=3 --sine-depth-min=1 --prec-gen-fun=invfreqhack --lazy-cnf=true --lazy-cnf-kind=simp --lazy-cnf-renaming-threshold=2 --fluid-log-hoist=false --tptp-def-as-rewrite --rewrite-before-cnf=true --ho-prim-enum=eq --ho-prim-enum-add-var=true --ho-prim-max=1 --ho-prim-enum-early-bird=true -o tptp --avatar=eager --split-only-ground=true"))], |
538 best_max_mono_iters = default_max_mono_iters, |
540 good_max_mono_iters = default_max_mono_iters, |
539 best_max_new_mono_instances = default_max_new_mono_instances} |
541 good_max_new_mono_instances = default_max_new_mono_instances} |
540 end |
542 end |
541 |
543 |
542 val zipperposition = (zipperpositionN, fn () => zipperposition_config) |
544 val zipperposition = (zipperpositionN, fn () => zipperposition_config) |
543 |
545 |
544 |
546 |
579 |
581 |
580 val max_remote_secs = 1000 (* give Geoff Sutcliffe's servers a break *) |
582 val max_remote_secs = 1000 (* give Geoff Sutcliffe's servers a break *) |
581 |
583 |
582 val isabelle_scala_function = (["SCALA_HOME"], ["bin/scala"]) |
584 val isabelle_scala_function = (["SCALA_HOME"], ["bin/scala"]) |
583 |
585 |
584 fun remote_config system_name system_versions proof_delims known_failures prem_role best_slice = |
586 fun remote_config system_name system_versions proof_delims known_failures prem_role good_slice = |
585 {exec = isabelle_scala_function, |
587 {exec = isabelle_scala_function, |
586 arguments = fn _ => fn _ => fn command => fn timeout => fn problem => fn _ => |
588 arguments = fn _ => fn _ => fn command => fn timeout => fn problem => fn _ => |
587 [the_remote_system system_name system_versions, |
589 [the_remote_system system_name system_versions, |
588 Isabelle_System.absolute_path problem, |
590 Isabelle_System.absolute_path problem, |
589 command, string_of_int (Int.min (max_remote_secs, to_secs 1 timeout) * 1000)], |
591 command, string_of_int (Int.min (max_remote_secs, to_secs 1 timeout) * 1000)], |
590 proof_delims = union (op =) tstp_proof_delims proof_delims, |
592 proof_delims = union (op =) tstp_proof_delims proof_delims, |
591 known_failures = known_failures @ known_says_failures, |
593 known_failures = known_failures @ known_says_failures, |
592 prem_role = prem_role, |
594 prem_role = prem_role, |
593 best_slices = fn ctxt => [best_slice ctxt], |
595 good_slices = fn ctxt => [good_slice ctxt], |
594 best_max_mono_iters = default_max_mono_iters, |
596 good_max_mono_iters = default_max_mono_iters, |
595 best_max_new_mono_instances = default_max_new_mono_instances} : atp_config |
597 good_max_new_mono_instances = default_max_new_mono_instances} : atp_config |
596 |
598 |
597 fun remotify_config system_name system_versions best_slice |
599 fun remotify_config system_name system_versions good_slice |
598 ({proof_delims, known_failures, prem_role, ...} : atp_config) = |
600 ({proof_delims, known_failures, prem_role, ...} : atp_config) = |
599 remote_config system_name system_versions proof_delims known_failures prem_role best_slice |
601 remote_config system_name system_versions proof_delims known_failures prem_role good_slice |
600 |
602 |
601 fun remote_atp name system_name system_versions proof_delims known_failures prem_role best_slice = |
603 fun remote_atp name system_name system_versions proof_delims known_failures prem_role good_slice = |
602 (remote_prefix ^ name, fn () => |
604 (remote_prefix ^ name, fn () => |
603 remote_config system_name system_versions proof_delims known_failures prem_role best_slice) |
605 remote_config system_name system_versions proof_delims known_failures prem_role good_slice) |
604 fun remotify_atp (name, config) system_name system_versions best_slice = |
606 fun remotify_atp (name, config) system_name system_versions good_slice = |
605 (remote_prefix ^ name, remotify_config system_name system_versions best_slice o config) |
607 (remote_prefix ^ name, remotify_config system_name system_versions good_slice o config) |
606 |
608 |
607 fun gen_remote_waldmeister name type_enc = |
609 fun gen_remote_waldmeister name type_enc = |
608 remote_atp name "Waldmeister" ["710"] tstp_proof_delims |
610 remote_atp name "Waldmeister" ["710"] tstp_proof_delims |
609 ([(OutOfResources, "Too many function symbols"), |
611 ([(OutOfResources, "Too many function symbols"), |
610 (Inappropriate, "**** Unexpected end of file."), |
612 (Inappropriate, "**** Unexpected end of file."), |
611 (Crashed, "Unrecoverable Segmentation Fault")] |
613 (Crashed, "Unrecoverable Segmentation Fault")] |
612 @ known_szs_status_failures) |
614 @ known_szs_status_failures) |
613 Hypothesis |
615 Hypothesis |
614 (K ((50, meshN), CNF_UEQ, type_enc, combsN, false, "") (* FUDGE *)) |
616 (K ((50, meshN), (CNF_UEQ, type_enc, combsN, false, "")) (* FUDGE *)) |
615 |
617 |
616 val remote_agsyhol = |
618 val remote_agsyhol = |
617 remotify_atp agsyhol "agsyHOL" ["1.0", "1"] |
619 remotify_atp agsyhol "agsyHOL" ["1.0", "1"] |
618 (K ((60, meshN), THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, "") (* FUDGE *)) |
620 (K ((60, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, "")) (* FUDGE *)) |
619 val remote_alt_ergo = |
621 val remote_alt_ergo = |
620 remotify_atp alt_ergo "Alt-Ergo" ["0.95.2"] |
622 remotify_atp alt_ergo "Alt-Ergo" ["0.95.2"] |
621 (K ((250, meshN), TF1, "poly_native", keep_lamsN, false, "") (* FUDGE *)) |
623 (K ((250, meshN), (TF1, "poly_native", keep_lamsN, false, "")) (* FUDGE *)) |
622 val remote_e = |
624 val remote_e = |
623 remotify_atp e "E" ["2.0", "1.9.1", "1.8"] |
625 remotify_atp e "E" ["2.0", "1.9.1", "1.8"] |
624 (K ((750, meshN), TF0, "mono_native", combsN, false, "") (* FUDGE *)) |
626 (K ((750, meshN), (TF0, "mono_native", combsN, false, "")) (* FUDGE *)) |
625 val remote_iprover = |
627 val remote_iprover = |
626 remotify_atp iprover "iProver" ["0.99"] |
628 remotify_atp iprover "iProver" ["0.99"] |
627 (K ((150, meshN), FOF, "mono_guards??", liftingN, false, "") (* FUDGE *)) |
629 (K ((150, meshN), (FOF, "mono_guards??", liftingN, false, "")) (* FUDGE *)) |
628 val remote_leo2 = |
630 val remote_leo2 = |
629 remotify_atp leo2 "LEO-II" ["1.5.0", "1.4", "1.3", "1.2", "1"] |
631 remotify_atp leo2 "LEO-II" ["1.5.0", "1.4", "1.3", "1.2", "1"] |
630 (K ((40, meshN), THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", liftingN, false, "") (* FUDGE *)) |
632 (K ((40, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", liftingN, false, "")) (* FUDGE *)) |
631 val remote_leo3 = |
633 val remote_leo3 = |
632 remotify_atp leo3 "Leo-III" ["1.1"] |
634 remotify_atp leo3 "Leo-III" ["1.1"] |
633 (K ((150, meshN), THF (Polymorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "poly_native_higher", keep_lamsN, false, "") (* FUDGE *)) |
635 (K ((150, meshN), (THF (Polymorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "poly_native_higher", keep_lamsN, false, "")) (* FUDGE *)) |
634 val remote_waldmeister = gen_remote_waldmeister waldmeisterN "raw_mono_tags??" |
636 val remote_waldmeister = gen_remote_waldmeister waldmeisterN "raw_mono_tags??" |
635 val remote_zipperposition = |
637 val remote_zipperposition = |
636 remotify_atp zipperposition "Zipperpin" ["2.1", "2.0"] |
638 remotify_atp zipperposition "Zipperpin" ["2.1", "2.0"] |
637 (K ((512, meshN), THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, "") (* FUDGE *)) |
639 (K ((512, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, "")) (* FUDGE *)) |
638 |
640 |
639 |
641 |
640 (* Dummy prover *) |
642 (* Dummy prover *) |
641 |
643 |
642 fun dummy_config prem_role format type_enc uncurried_aliases : atp_config = |
644 fun dummy_config prem_role format type_enc uncurried_aliases : atp_config = |
643 {exec = (["ISABELLE_ATP"], ["scripts/dummy_atp"]), |
645 {exec = (["ISABELLE_ATP"], ["scripts/dummy_atp"]), |
644 arguments = K (K (K (K (K (K []))))), |
646 arguments = K (K (K (K (K (K []))))), |
645 proof_delims = [], |
647 proof_delims = [], |
646 known_failures = known_szs_status_failures, |
648 known_failures = known_szs_status_failures, |
647 prem_role = prem_role, |
649 prem_role = prem_role, |
648 best_slices = |
650 good_slices = |
649 K [((200, "mepo"), format, type_enc, |
651 K [((200, "mepo"), (format, type_enc, |
650 if is_format_higher_order format then keep_lamsN else combsN, uncurried_aliases, "")], |
652 if is_format_higher_order format then keep_lamsN else combsN, uncurried_aliases, ""))], |
651 best_max_mono_iters = default_max_mono_iters, |
653 good_max_mono_iters = default_max_mono_iters, |
652 best_max_new_mono_instances = default_max_new_mono_instances} |
654 good_max_new_mono_instances = default_max_new_mono_instances} |
653 |
655 |
654 val dummy_fof = |
656 val dummy_fof = |
655 (dummy_fofN, fn () => dummy_config Hypothesis FOF "mono_guards??" false) |
657 (dummy_fofN, fn () => dummy_config Hypothesis FOF "mono_guards??" false) |
656 |
658 |
657 val dummy_tfx = |
659 val dummy_tfx = |