src/HOL/Tools/Sledgehammer/sledgehammer_provers.ML
changeset 42998 1c80902d0456
parent 42994 fe291ab75eb5
child 43004 20e9caff1f86
equal deleted inserted replaced
42997:038bb26d74b0 42998:1c80902d0456
   444     else if member (op =) formats TFF then
   444     else if member (op =) formats TFF then
   445       (TFF, Simple_Types level)
   445       (TFF, Simple_Types level)
   446     else
   446     else
   447       adjust_dumb_type_sys formats (Preds (Mangled_Monomorphic, level, Heavy))
   447       adjust_dumb_type_sys formats (Preds (Mangled_Monomorphic, level, Heavy))
   448   | adjust_dumb_type_sys formats type_sys =
   448   | adjust_dumb_type_sys formats type_sys =
   449     if member (op =) formats FOF then
   449     (case hd formats of
   450       (FOF, type_sys)
   450        CNF_UEQ =>
   451     else if member (op =) formats CNF_UEQ then
   451        (CNF_UEQ, case type_sys of
   452       (CNF_UEQ, case type_sys of
   452                    Preds stuff =>
   453                   Preds stuff =>
   453                    (if is_type_sys_fairly_sound type_sys then Preds else Tags)
   454                   (if is_type_sys_fairly_sound type_sys then Preds else Tags)
   454                        stuff
   455                       stuff
   455                  | _ => type_sys)
   456                 | _ => type_sys)
   456      | format => (format, type_sys))
   457     else
       
   458       (* We could return "type_sys" unchanged for TFF but this would require the
       
   459          TFF and THF provers to accept problems in which some constants are
       
   460          implicitly declared. Today only ToFoF-E seems to meet this
       
   461          criterion. *)
       
   462       (hd formats, Simple_Types All_Types)
       
   463 
   457 
   464 fun determine_format_and_type_sys _ formats (Dumb_Type_Sys type_sys) =
   458 fun determine_format_and_type_sys _ formats (Dumb_Type_Sys type_sys) =
   465     adjust_dumb_type_sys formats type_sys
   459     adjust_dumb_type_sys formats type_sys
   466   | determine_format_and_type_sys best_type_systems formats
   460   | determine_format_and_type_sys best_type_systems formats
   467                                   (Smart_Type_Sys full_types) =
   461                                   (Smart_Type_Sys full_types) =