| ⊦ same-subclasses-contains(ty .jtelemtype .class, str, str0) ∧ has_classtype(ty3) ∧ is_reftype(ty) ∧ type∃(str0, ty) ∧ type∃(str0, ty1) ∧ type∃(str0, ty3) ∧ ty1 ≤ ty ∧ (is_arraytype(ty1) → ty3 ≤ ty1 .type) ∧ (is_classtype(ty1) → ¬ interface∃(str0, ty1 .class) ∧ mkfs(class, ty2, fieldvar) ' ∈ instfields(ty1 .class) ∧ ty3 ≤ ty2) → same-subclasses-contains(ty3 .jtelemtype .class, str, str0) |
ty1 ≤ ty, type∃(str0, ty3), type∃(str0, ty1), type∃(str0, ty), is_reftype(ty), has_classtype(ty3), same-subclasses-contains(ty .jtelemtype .class, str, str0), is_classtype(ty1) → ¬ interface∃(str0, ty1 .class) ∧ mkfs(class, ty2, fieldvar) ' ∈ instfields(ty1 .class) ∧ ty3 ≤ ty2, is_arraytype(ty1) → ty3 ≤ ty1 .type ⊦ same-subclasses-contains(ty3 .jtelemtype .class, str, str0)
[[CONCRETESIMPRULES : ()]]