src/HOL/Tools/Sledgehammer/sledgehammer_atp_translate.ML
changeset 42726 70fc448a1815
parent 42722 626e292d22a7
child 42727 f365f5138771
equal deleted inserted replaced
42725:64dea91bbe0e 42726:70fc448a1815
   680           val (T, T_args) =
   680           val (T, T_args) =
   681             (* Aggressively merge most "hAPPs" if the type system is unsound
   681             (* Aggressively merge most "hAPPs" if the type system is unsound
   682                anyway, by distinguishing overloads only on the homogenized
   682                anyway, by distinguishing overloads only on the homogenized
   683                result type. *)
   683                result type. *)
   684             if s = const_prefix ^ explicit_app_base andalso
   684             if s = const_prefix ^ explicit_app_base andalso
       
   685                length T_args = 2 andalso
   685                not (is_type_sys_virtually_sound type_sys) then
   686                not (is_type_sys_virtually_sound type_sys) then
   686               T_args |> map (homogenized_type ctxt nonmono_Ts level)
   687               T_args |> map (homogenized_type ctxt nonmono_Ts level)
   687                      |> (fn Ts => let val T = hd Ts --> nth Ts 1 in
   688                      |> (fn Ts => let val T = hd Ts --> nth Ts 1 in
   688                                     (T --> T, tl Ts)
   689                                     (T --> T, tl Ts)
   689                                   end)
   690                                   end)