src/HOL/Mirabelle/Tools/mirabelle_sledgehammer.ML
changeset 44461 5e19eecb0e1c
parent 44449 b622a98b79fb
child 44462 d9a657c44380
equal deleted inserted replaced
44460:5d0754cf994a 44461:5e19eecb0e1c
   548         )
   548         )
   549     | NONE => log (minimize_tag id ^ "failed: " ^ msg)
   549     | NONE => log (minimize_tag id ^ "failed: " ^ msg)
   550   end
   550   end
   551 
   551 
   552 
   552 
   553 val e_override_params =
   553 fun e_override_params timeout =
   554   [("provers", "e"),
   554   [("provers", "e"),
   555    ("max_relevant", "0"),
   555    ("max_relevant", "0"),
   556    ("type_enc", "poly_guards?"),
   556    ("type_enc", "poly_guards?"),
   557    ("sound", "true"),
   557    ("sound", "true"),
   558    ("slicing", "false")]
   558    ("slicing", "false"),
   559 
   559    ("timeout", timeout |> Time.toSeconds |> string_of_int)]
   560 val vampire_override_params =
   560 
       
   561 fun vampire_override_params timeout =
   561   [("provers", "vampire"),
   562   [("provers", "vampire"),
   562    ("max_relevant", "0"),
   563    ("max_relevant", "0"),
   563    ("type_enc", "poly_tags"),
   564    ("type_enc", "poly_tags"),
   564    ("sound", "true"),
   565    ("sound", "true"),
   565    ("slicing", "false")]
   566    ("slicing", "false"),
       
   567    ("timeout", timeout |> Time.toSeconds |> string_of_int)]
   566 
   568 
   567 fun run_reconstructor trivial full m name reconstructor named_thms id
   569 fun run_reconstructor trivial full m name reconstructor named_thms id
   568     ({pre=st, timeout, log, pos, ...}: Mirabelle.run_args) =
   570     ({pre=st, timeout, log, pos, ...}: Mirabelle.run_args) =
   569   let
   571   let
   570     fun do_reconstructor thms ctxt =
   572     fun do_reconstructor thms ctxt =
   571       (if !reconstructor = "sledgehammer_tac" then
   573       (if !reconstructor = "sledgehammer_tac" then
   572          (fn ctxt => fn thms =>
   574          (fn ctxt => fn thms =>
   573             Method.insert_tac thms THEN'
   575             Method.insert_tac thms THEN'
   574             (Sledgehammer_Tactics.sledgehammer_as_oracle_tac ctxt
   576             (Sledgehammer_Tactics.sledgehammer_as_oracle_tac ctxt
   575                  e_override_params
   577                  (e_override_params timeout)
   576              ORELSE'
   578              ORELSE'
   577              Sledgehammer_Tactics.sledgehammer_as_oracle_tac ctxt
   579              Sledgehammer_Tactics.sledgehammer_as_oracle_tac ctxt
   578                  vampire_override_params))
   580                  (vampire_override_params timeout)))
   579        else if !reconstructor = "smt" then
   581        else if !reconstructor = "smt" then
   580          SMT_Solver.smt_tac
   582          SMT_Solver.smt_tac
   581        else if full orelse !reconstructor = "metis (full_types)" then
   583        else if full orelse !reconstructor = "metis (full_types)" then
   582          Metis_Tactics.metis_tac [Metis_Tactics.full_type_enc]
   584          Metis_Tactics.metis_tac [Metis_Tactics.full_type_enc]
   583        else if !reconstructor = "metis (no_types)" then
   585        else if !reconstructor = "metis (no_types)" then