src/HOL/Mirabelle/Tools/mirabelle_sledgehammer.ML
changeset 38988 483879af0643
parent 38826 f42f425edf24
child 38998 f11a861e0061
equal deleted inserted replaced
38987:96fae8916d8b 38988:483879af0643
   288     (case AList.lookup (op =) args proverK of
   288     (case AList.lookup (op =) args proverK of
   289       SOME name => get_prover name
   289       SOME name => get_prover name
   290     | NONE => get_prover (default_atp_name ()))
   290     | NONE => get_prover (default_atp_name ()))
   291   end
   291   end
   292 
   292 
   293 type locality = Sledgehammer_Fact_Filter.locality
   293 type locality = Sledgehammer_Filter.locality
   294 
   294 
   295 local
   295 local
   296 
   296 
   297 datatype sh_result =
   297 datatype sh_result =
   298   SH_OK of int * int * (string * locality) list |
   298   SH_OK of int * int * (string * locality) list |
   355     val (msg, result) = run_sh prover hard_timeout timeout dir st
   355     val (msg, result) = run_sh prover hard_timeout timeout dir st
   356   in
   356   in
   357     case result of
   357     case result of
   358       SH_OK (time_isa, time_atp, names) =>
   358       SH_OK (time_isa, time_atp, names) =>
   359         let
   359         let
   360           fun get_thms (name, Sledgehammer_Fact_Filter.Chained) = NONE
   360           fun get_thms (name, Sledgehammer_Filter.Chained) = NONE
   361             | get_thms (name, loc) =
   361             | get_thms (name, loc) =
   362               SOME ((name, loc), thms_of_name (Proof.context_of st) name)
   362               SOME ((name, loc), thms_of_name (Proof.context_of st) name)
   363         in
   363         in
   364           change_data id inc_sh_success;
   364           change_data id inc_sh_success;
   365           change_data id (inc_sh_lemmas (length names));
   365           change_data id (inc_sh_lemmas (length names));
   394       |> Option.map (fst o read_int o explode)
   394       |> Option.map (fst o read_int o explode)
   395       |> the_default 5
   395       |> the_default 5
   396     val params = Sledgehammer_Isar.default_params thy
   396     val params = Sledgehammer_Isar.default_params thy
   397       [("atps", prover_name), ("timeout", Int.toString timeout ^ " s")]
   397       [("atps", prover_name), ("timeout", Int.toString timeout ^ " s")]
   398     val minimize =
   398     val minimize =
   399       Sledgehammer_Fact_Minimize.minimize_theorems params 1 (subgoal_count st)
   399       Sledgehammer_Minimize.minimize_theorems params 1 (subgoal_count st)
   400     val _ = log separator
   400     val _ = log separator
   401   in
   401   in
   402     case minimize st (these (!named_thms)) of
   402     case minimize st (these (!named_thms)) of
   403       (SOME named_thms', msg) =>
   403       (SOME named_thms', msg) =>
   404         (change_data id inc_min_succs;
   404         (change_data id inc_min_succs;