| is_classtype(ty), ∀ class0. contains(str0, mkclasstype(class), mkclasstype(class0)) → tdname+∃(str, class0), same-subclasses-contains(class, str, str0), contains(str0, mkclasstype(class), ty) ⊦ type∃(str, ty) |
⊦ is_classtype(ty) ↔ (∃ class. ty = mkclasstype(class))
∃ class. ty = mkclasstype(class), ∀ class0. contains(str0, mkclasstype(class), mkclasstype(class0)) → tdname+∃(str, class0), same-subclasses-contains(class, str, str0), contains(str0, mkclasstype(class), ty) ⊦ type∃(str, ty)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (ty)]]