| class ≤ class0, interface∃(str0, class), same-subclasses(class0, str, str0) ⊦ interface∃(str, class) |
⊦ same-subclasses(class, str, str0) ↔ (∀ class0. class∃(str0, class0) ∧ class0 ≤ class → class∃(str, class0)) ∧ (∀ class0. interface∃(str0, class0) ∧ class0 ≤ class → interface∃(str, class0))
class ≤ class0, interface∃(str0, class), (∀ class1. class∃(str0, class1) ∧ class1 ≤ class0 → class∃(str, class1)) ∧ (∀ class1. interface∃(str0, class1) ∧ class1 ≤ class0 → interface∃(str, class1)) ⊦ interface∃(str, class)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (str0, str, class0)]]