src/HOL/Tools/ATP/atp_util.ML
changeset 51983 3686bc0d4df2
parent 51254 fb579401dc26
child 52334 1c6031e5d284
     1.1 --- a/src/HOL/Tools/ATP/atp_util.ML	Fri Jan 18 00:18:11 2013 +0100
     1.2 +++ b/src/HOL/Tools/ATP/atp_util.ML	Fri Jan 18 14:33:16 2013 +0100
     1.3 @@ -156,12 +156,11 @@
     1.4      let
     1.5        val tvars = Term.add_tvar_namesT T []
     1.6        val tvars' = Term.add_tvar_namesT T' []
     1.7 +      val maxidx' = maxidx_of_typ T'
     1.8        val T =
     1.9 -        if exists (member (op =) tvars') tvars then
    1.10 -          T |> Logic.incr_tvar (maxidx_of_typ T' + 1)
    1.11 -        else
    1.12 -          T
    1.13 -    in can (Sign.typ_unify thy (T, T')) (Vartab.empty, 0) end
    1.14 +        T |> exists (member (op =) tvars') tvars ? Logic.incr_tvar (maxidx' + 1)
    1.15 +      val maxidx = Integer.max (maxidx_of_typ T) maxidx'
    1.16 +    in can (Sign.typ_unify thy (T, T')) (Vartab.empty, maxidx) end
    1.17  
    1.18  val type_equiv = Sign.typ_equiv
    1.19