| 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) |
class1 ≤ class, tdname+∃(str, class), is_predefined_class(class), contains(str, ty2, ty), ty2 ≤ ty4, mkfs(class2, ty4, fieldvar0) ' ∈ instfields(class1), class+∃(str, class1), ∀ class0. tdname∃(str, class0) ∧ class0 ≤ class → is_predefined_class(class0) ⊦ class = `java.lang.Object' .class, interface∃(str, class1)
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : javatype, , test-10, ⊦ is_classtype (mkclasstype(class))], [CSIMPNAMEDSEQ : typefuns, , tdnameex-06, ⊦ ¬ interface∃(str, class) → ( tdname+∃(str, class) ↔ class+∃(str, class))], [CSIMPNAMEDSEQ : typefuns, , typeex-class, ⊦ type∃ (str, mkclasstype(class)) ↔ tdname+∃(str, class)])]]