| same-subclasses(class, str, str1), same-subclasses-contains(class, str0, str1), same-subclasses-contains(class, str, str0), contains(str1, mkclasstype(class), mkclasstype(class0)) ⊦ contains(str0, mkclasstype(class), mkclasstype(class0)), same-subclasses(class0, str, str1) |
⊦ contains(str0, ty, ty0) ∧ type∃(str, ty) ∧ same-subclasses-contains(ty .jtelemtype .class, str, str0) → contains(str, ty, ty0)
¬ ( contains(str1, mkclasstype(class), mkclasstype(class0)) ∧ type∃(str0, mkclasstype(class)) ∧ same-subclasses-contains(mkclasstype(class) .jtelemtype .class, str0, str1)), same-subclasses(class, str, str1), same-subclasses-contains(class, str0, str1), same-subclasses-contains(class, str, str0), contains(str1, mkclasstype(class), mkclasstype(class0)) ⊦ contains(str0, mkclasstype(class), mkclasstype(class0)), same-subclasses(class0, str, str1)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (str1, mkclasstype(class), mkclasstype(class0), str0)]]