| contains(str0, mkclasstype(class) ' + tys + mkclasstype(class0) '), same-subclasses-contains(class, str, str0), ∀ class0, str0, str, class, tys0. # tys0 < # tys → (same-subclasses-contains(class, str, str0) ∧ contains(str0, mkclasstype(class) ' + tys0 + mkclasstype(class0) ') → tdname+∃(str, class0)) ⊦ tdname+∃(str, class0) |
tys = [], contains(str0, mkclasstype(class) ' + tys + mkclasstype(class0) '), same-subclasses-contains(class, str, str0), ∀ class0, str0, str, class, tys0. # tys0 < # tys → (same-subclasses-contains(class, str, str0) ∧ contains(str0, mkclasstype(class) ' + tys0 + mkclasstype(class0) ') → tdname+∃(str, class0)) ⊦ tdname+∃(str, class0)
contains(str0, mkclasstype(class) ' + tys + mkclasstype(class0) '), same-subclasses-contains(class, str, str0), ∀ class0, str0, str, class, tys0. # tys0 < # tys → (same-subclasses-contains(class, str, str0) ∧ contains(str0, mkclasstype(class) ' + tys0 + mkclasstype(class0) ') → tdname+∃(str, class0)) ⊦ tys = [], tdname+∃(str, class0)
[[CONCRETESIMPRULES : ()], [EXTRAFMAS : (tys = [])]]