| contains(str1, mkclasstype(class), mkclasstype(class0)), same-subclasses(class, str, str0), same-subclasses(class, str0, str1) ∧ (∀ class0. contains(str1, mkclasstype(class), mkclasstype(class0)) → same-subclasses(class0, str0, str1)), same-subclasses(class, str, str1), contains(str0, mkclasstype(class), mkclasstype(class0)), same-subclasses(class0, str, str0) ⊦ same-subclasses(class0, str, str1) |
same-subclasses(class0, str, str0), contains(str0, mkclasstype(class), mkclasstype(class0)), same-subclasses(class, str, str1), same-subclasses(class, str0, str1), same-subclasses(class, str, str0), contains(str1, mkclasstype(class), mkclasstype(class0)), ∀ class0. contains(str1, mkclasstype(class), mkclasstype(class0)) → same-subclasses(class0, str0, str1) ⊦ same-subclasses(class0, str, str1)
[[CONCRETESIMPRULES : ()]]