src/HOL/Tools/ATP/atp_systems.ML
changeset 46449 312b49fba357
parent 46444 db6d2a89a21f
child 46455 ec2e20b27638
equal deleted inserted replaced
46448:f1201fac7398 46449:312b49fba357
   244    prem_kind = Conjecture,
   244    prem_kind = Conjecture,
   245    best_slices = fn ctxt =>
   245    best_slices = fn ctxt =>
   246      let val method = effective_e_weight_method ctxt in
   246      let val method = effective_e_weight_method ctxt in
   247        (* FUDGE *)
   247        (* FUDGE *)
   248        if method = e_smartN then
   248        if method = e_smartN then
   249          [(0.333, (true, ((500, FOF, "mono_tags??", combsN, false),
   249          [(0.333, (true, ((500, FOF, "mono_tags??", combsN, false), e_fun_weightN))),
   250                           e_fun_weightN))),
   250           (0.334, (true, ((50, FOF, "mono_guards??", combsN, false), e_fun_weightN))),
   251           (0.334, (true, ((50, FOF, "mono_guards??", combsN, false),
   251           (0.333, (true, ((1000, FOF, "mono_tags??", combsN, false), e_sym_offset_weightN)))]
   252                           e_fun_weightN))),
       
   253           (0.333, (true, ((1000, FOF, "mono_tags??", combsN, false),
       
   254                           e_sym_offset_weightN)))]
       
   255        else
   252        else
   256          [(1.0, (true, ((500, FOF, "mono_tags??", combsN, false), method)))]
   253          [(1.0, (true, ((500, FOF, "mono_tags??", combsN, false), method)))]
   257      end}
   254      end}
   258 
   255 
   259 val e = (eN, e_config)
   256 val e = (eN, e_config)
   276      [(TimedOut, "CPU time limit exceeded, terminating")],
   273      [(TimedOut, "CPU time limit exceeded, terminating")],
   277    conj_sym_kind = Axiom,
   274    conj_sym_kind = Axiom,
   278    prem_kind = Hypothesis,
   275    prem_kind = Hypothesis,
   279    best_slices = fn ctxt =>
   276    best_slices = fn ctxt =>
   280      (* FUDGE *)
   277      (* FUDGE *)
   281      [(0.667, (false, ((150, leo2_thf0, "mono_native_higher", liftingN, false),
   278      [(0.667, (false, ((150, leo2_thf0, "mono_native_higher", liftingN, false), sosN))),
   282                        sosN))),
   279       (0.333, (true, ((50, leo2_thf0, "mono_native_higher", liftingN, false), no_sosN)))]
   283       (0.333, (true, ((50, leo2_thf0, "mono_native_higher", liftingN, false),
       
   284                       no_sosN)))]
       
   285      |> (if Config.get ctxt force_sos then hd #> apfst (K 1.0) #> single
   280      |> (if Config.get ctxt force_sos then hd #> apfst (K 1.0) #> single
   286          else I)}
   281          else I)}
   287 
   282 
   288 val leo2 = (leo2N, leo2_config)
   283 val leo2 = (leo2N, leo2_config)
   289 
   284 
   303    known_failures = known_szs_status_failures,
   298    known_failures = known_szs_status_failures,
   304    conj_sym_kind = Axiom,
   299    conj_sym_kind = Axiom,
   305    prem_kind = Hypothesis,
   300    prem_kind = Hypothesis,
   306    best_slices =
   301    best_slices =
   307      (* FUDGE *)
   302      (* FUDGE *)
   308      K [(1.0, (true, ((100, satallax_thf0, "mono_native_higher", keep_lamsN,
   303      K [(1.0, (true, ((100, satallax_thf0, "mono_native_higher", keep_lamsN, false), "")))]}
   309                        false), "")))]}
       
   310 
   304 
   311 val satallax = (satallaxN, satallax_config)
   305 val satallax = (satallaxN, satallax_config)
   312 
   306 
   313 
   307 
   314 (* SPASS *)
   308 (* SPASS *)
   334       (InternalError, "Please report this error")],
   328       (InternalError, "Please report this error")],
   335    conj_sym_kind = Hypothesis,
   329    conj_sym_kind = Hypothesis,
   336    prem_kind = Conjecture,
   330    prem_kind = Conjecture,
   337    best_slices = fn ctxt =>
   331    best_slices = fn ctxt =>
   338      (* FUDGE *)
   332      (* FUDGE *)
   339      [(0.333, (false, ((150, DFG DFG_Unsorted, "mono_tags??", liftingN, false),
   333      [(0.333, (false, ((150, DFG DFG_Unsorted, "mono_tags??", liftingN, false), sosN))),
   340                        sosN))),
   334       (0.333, (false, ((300, DFG DFG_Unsorted, "poly_tags??", liftingN, false), sosN))),
   341       (0.333, (false, ((300, DFG DFG_Unsorted, "poly_tags??", liftingN, false),
   335       (0.334, (false, ((50, DFG DFG_Unsorted, "mono_tags??", liftingN, false), no_sosN)))]
   342                        sosN))),
   336      |> (if Config.get ctxt force_sos then hd #> apfst (K 1.0) #> single else I)}
   343       (0.334, (false, ((50, DFG DFG_Unsorted, "mono_tags??", liftingN, false),
       
   344                        no_sosN)))]
       
   345      |> (if Config.get ctxt force_sos then hd #> apfst (K 1.0) #> single
       
   346          else I)}
       
   347 
   337 
   348 val spass = (spassN, spass_config)
   338 val spass = (spassN, spass_config)
       
   339 
       
   340 val spass_new_H2 = "-Heuristic=2"
       
   341 val spass_new_H2_SOS = "-Heuristic=2 -SOS"
       
   342 val spass_new_Red2 = "-RFRew=2 -RBRew=2 -RTaut=2"
       
   343 val spass_new_Sorts0 = "-Sorts=0"
   349 
   344 
   350 (* Experimental *)
   345 (* Experimental *)
   351 val spass_new_config : atp_config =
   346 val spass_new_config : atp_config =
   352   {exec = ("SPASS_NEW_HOME", "SPASS"),
   347   {exec = ("SPASS_NEW_HOME", "SPASS"),
   353    required_execs = [],
   348    required_execs = [],
   354    arguments = fn _ => fn _ => fn extra_options => fn timeout => fn _ =>
   349    arguments = fn _ => fn _ => fn extra_options => fn timeout => fn _ =>
   355      (* TODO: add: -FPDFGProof -FPFCR *)
       
   356      ("-Isabelle=1 -TimeLimit=" ^ string_of_int (to_secs 1 timeout))
   350      ("-Isabelle=1 -TimeLimit=" ^ string_of_int (to_secs 1 timeout))
   357      |> extra_options <> "" ? prefix (extra_options ^ " "),
   351      |> extra_options <> "" ? prefix (extra_options ^ " "),
   358    proof_delims = #proof_delims spass_config,
   352    proof_delims = #proof_delims spass_config,
   359    known_failures = #known_failures spass_config,
   353    known_failures = #known_failures spass_config,
   360    conj_sym_kind = #conj_sym_kind spass_config,
   354    conj_sym_kind = #conj_sym_kind spass_config,
   361    prem_kind = #prem_kind spass_config,
   355    prem_kind = #prem_kind spass_config,
   362    best_slices = fn _ =>
   356    best_slices = fn _ =>
   363      (* FUDGE *)
   357      (* FUDGE *)
   364      [(0.25, (true, ((150, DFG DFG_Sorted, "mono_native", combsN, true),
   358 (*
   365                      "-Heuristic=1"))),
   359      [(0.25, (true, ((150, DFG DFG_Sorted, "mono_native", combsN, true), spass_new_H1))),
   366       (0.20, (true, ((500, DFG DFG_Sorted, "mono_native", liftingN, true),
   360       (0.20, (false, ((500, DFG DFG_Sorted, "mono_native", liftingN, true), spass_new_H2_SOS))),
   367                      "-Heuristic=2 -SOS"))),
   361       (0.20, (true, ((50, DFG DFG_Sorted, "mono_native", liftingN, true), spass_new_H2))),
   368       (0.20, (true, ((50, DFG DFG_Sorted, "mono_native", liftingN, true),
   362       (0.20, (true, ((250, DFG DFG_Sorted, "mono_native", combs_and_liftingN, true), spass_new_H2))),
   369                      "-Heuristic=2"))),
   363       (0.15, (true, ((100, DFG DFG_Sorted, "mono_native", combs_and_liftingN, true), spass_new_H2)))]
   370       (0.20, (true, ((250, DFG DFG_Sorted, "mono_native", combs_and_liftingN,
   364 *)
   371                       true), "-Heuristic=2"))),
   365      [(0.1, (true, ((50, DFG DFG_Sorted, "mono_native", liftingN, true), spass_new_H2))),
   372       (0.15, (true, ((100, DFG DFG_Sorted, "mono_native", combs_and_liftingN,
   366       (0.1, (true, ((150, DFG DFG_Sorted, "mono_native", combsN, true), spass_new_Sorts0))),
   373                       true), "-Heuristic=2")))]}
   367       (0.1, (true, ((250, DFG DFG_Sorted, "mono_native", combs_and_liftingN, true), spass_new_H2))),
       
   368       (0.1, (false, ((500, DFG DFG_Sorted, "mono_native", liftingN, true), spass_new_H2_SOS))),
       
   369       (0.1, (true, ((600, DFG DFG_Sorted, "mono_native", combs_and_liftingN, true), spass_new_Red2))),
       
   370       (0.1, (true, ((150, DFG DFG_Sorted, "poly_guards??", combsN, false), spass_new_H2))),
       
   371       (0.1, (false, ((300, DFG DFG_Sorted, "mono_native", combsN, true), spass_new_H2_SOS))),
       
   372       (0.1, (true, ((100, DFG DFG_Sorted, "mono_native", combs_and_liftingN, true), spass_new_H2))),
       
   373       (0.1, (true, ((50, DFG DFG_Sorted, "mono_native", combsN, true), spass_new_Sorts0))),
       
   374       (0.1, (true, ((100, DFG DFG_Sorted, "poly_guards??", liftingN, false), spass_new_Red2)))]}
   374 
   375 
   375 val spass_new = (spass_newN, spass_new_config)
   376 val spass_new = (spass_newN, spass_new_config)
   376 
   377 
   377 
   378 
   378 (* Vampire *)
   379 (* Vampire *)
   408    conj_sym_kind = Conjecture,
   409    conj_sym_kind = Conjecture,
   409    prem_kind = Conjecture,
   410    prem_kind = Conjecture,
   410    best_slices = fn ctxt =>
   411    best_slices = fn ctxt =>
   411      (* FUDGE *)
   412      (* FUDGE *)
   412      (if is_old_vampire_version () then
   413      (if is_old_vampire_version () then
   413         [(0.333, (false, ((150, FOF, "poly_guards??", combs_or_liftingN, false),
   414         [(0.333, (false, ((150, FOF, "poly_guards??", combs_or_liftingN, false), sosN))),
   414                           sosN))),
   415          (0.333, (false, ((500, FOF, "mono_tags??", combs_or_liftingN, false), sosN))),
   415          (0.333, (false, ((500, FOF, "mono_tags??", combs_or_liftingN, false),
   416          (0.334, (true, ((50, FOF, "mono_guards??", combs_or_liftingN, false), no_sosN)))]
   416                           sosN))),
       
   417          (0.334, (true, ((50, FOF, "mono_guards??", combs_or_liftingN, false),
       
   418                          no_sosN)))]
       
   419       else
   417       else
   420         [(0.333, (false, ((150, vampire_tff0, "poly_guards??",
   418         [(0.333, (false, ((150, vampire_tff0, "poly_guards??", combs_or_liftingN, false), sosN))),
   421                            combs_or_liftingN, false), sosN))),
   419          (0.333, (false, ((500, vampire_tff0, "mono_native", combs_or_liftingN, false), sosN))),
   422          (0.333, (false, ((500, vampire_tff0, "mono_native", combs_or_liftingN,
   420          (0.334, (true, ((50, vampire_tff0, "mono_native", combs_or_liftingN, false), no_sosN)))])
   423                            false), sosN))),
       
   424          (0.334, (true, ((50, vampire_tff0, "mono_native", combs_or_liftingN,
       
   425                           false), no_sosN)))])
       
   426      |> (if Config.get ctxt force_sos then hd #> apfst (K 1.0) #> single
   421      |> (if Config.get ctxt force_sos then hd #> apfst (K 1.0) #> single
   427          else I)}
   422          else I)}
   428 
   423 
   429 val vampire = (vampireN, vampire_config)
   424 val vampire = (vampireN, vampire_config)
   430 
   425