src/HOL/Tools/Sledgehammer/sledgehammer_provers.ML
changeset 43101 1d46d85cd78b
parent 43096 f181d66046d4
child 43102 9a42899ec169
equal deleted inserted replaced
43100:49347c6354b5 43101:1d46d85cd78b
   512 val atp_important_message_keep_quotient = 10
   512 val atp_important_message_keep_quotient = 10
   513 
   513 
   514 val fallback_best_type_systems =
   514 val fallback_best_type_systems =
   515   [Preds (Mangled_Monomorphic, Nonmonotonic_Types, Light)]
   515   [Preds (Mangled_Monomorphic, Nonmonotonic_Types, Light)]
   516 
   516 
   517 fun adjust_dumb_type_sys formats (Simple_Types level) =
       
   518     if member (op =) formats THF then
       
   519       (THF, Simple_Types level)
       
   520     else if member (op =) formats TFF then
       
   521       (TFF, Simple_Types level)
       
   522     else
       
   523       adjust_dumb_type_sys formats (Preds (Mangled_Monomorphic, level, Heavy))
       
   524   | adjust_dumb_type_sys formats type_sys =
       
   525     (case hd formats of
       
   526        CNF_UEQ =>
       
   527        (CNF_UEQ, case type_sys of
       
   528                    Preds stuff =>
       
   529                    (if is_type_sys_fairly_sound type_sys then Preds else Tags)
       
   530                        stuff
       
   531                  | _ => type_sys)
       
   532      | format => (format, type_sys))
       
   533 
       
   534 fun choose_format_and_type_sys _ formats (Dumb_Type_Sys type_sys) =
   517 fun choose_format_and_type_sys _ formats (Dumb_Type_Sys type_sys) =
   535     adjust_dumb_type_sys formats type_sys
   518     choose_format formats type_sys
   536   | choose_format_and_type_sys best_type_systems formats
   519   | choose_format_and_type_sys best_type_systems formats
   537                                (Smart_Type_Sys full_types) =
   520                                (Smart_Type_Sys full_types) =
   538     map type_sys_from_string best_type_systems @ fallback_best_type_systems
   521     map type_sys_from_string best_type_systems @ fallback_best_type_systems
   539     |> find_first (if full_types then is_type_sys_virtually_sound else K true)
   522     |> find_first (if full_types then is_type_sys_virtually_sound else K true)
   540     |> the |> adjust_dumb_type_sys formats
   523     |> the |> choose_format formats
   541 
   524 
   542 val metis_minimize_max_time = seconds 2.0
   525 val metis_minimize_max_time = seconds 2.0
   543 
   526 
   544 fun choose_minimize_command minimize_command name preplay =
   527 fun choose_minimize_command minimize_command name preplay =
   545   (case preplay of
   528   (case preplay of