| ¬ ( 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) |
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), tdname+∃(str0, class)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ mkclasstype(class) .class = class], [CSIMPSEQ : ⊦ mkclasstype(class) .jtelemtype = mkclasstype(class)], [CSIMPSEQ : ⊦ type∃(str, mkclasstype(class)) ↔ tdname+∃(str, class)])]]