| tdname+∃(str, class), is_predefined_class(class), contains(str, ty2, ty), ty2 ≤ ty4, mkfs(class2, ty4, fieldvar0) ' ∈ instfields(ty1 .class), type∃(str, ty1), ty1 .class ≤ class, is_classtype(ty1), ∀ class0. tdname∃(str, class0) ∧ class0 ≤ class → is_predefined_class(class0) ⊦ class = `java.lang.Object' .class, interface∃(str, ty1 .class) |
ty1 = mkclasstype(class1), tdname+∃(str, class), is_predefined_class(class), contains(str, ty2, ty), ty2 ≤ ty4, mkfs(class2, ty4, fieldvar0) ' ∈ instfields(class1), type∃(str, ty1), class1 ≤ class, is_classtype(ty1), ∀ class0. tdname∃(str, class0) ∧ class0 ≤ class → is_predefined_class(class0) ⊦ class = `java.lang.Object' .class, interface∃(str, class1)
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ is_classtype(ty) → ( class = ty .class ↔ ty = mkclasstype(class))])], [EXTRATERMS : (ty1, class1)]]