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