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