| fs = mkfs(class1, ty3, fieldvar), 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) ∧ fs ' ∈ 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 |
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
[[CONCRETESIMPRULES : ()]]