| st[jvmref -- mkfs(class, ty, fieldvar) '] = refval(r), jvmref -- mkfs(class, ty, fieldvar) ' ∈ st, initdone(class, st), tdname∃(str0, class), mkfs(class, ty, fieldvar) ' ∈ statfields(class), tdname∃(str, class), type∃(str, ty), same-subclasses-contains(ty .jtelemtype .class, str, str0), is_reftype(ty), type∃(str0, ty), jvmref ∈ st, validref(str0, r, ty, st) ⊦ ty = void_type, validref(str, r, ty, st), tdname+∃(str0, ty .jtelemtype .class) |
⊦ type∃(str, ty) ↔ ¬ has_classtype(ty) ∨ tdname+∃(str, ty .jtclass)
st[jvmref -- mkfs(class, ty, fieldvar) '] = refval(r), jvmref -- mkfs(class, ty, fieldvar) ' ∈ st, initdone(class, st), tdname∃(str0, class), mkfs(class, ty, fieldvar) ' ∈ statfields(class), tdname∃(str, class), type∃(str, ty), same-subclasses-contains(ty .jtelemtype .class, str, str0), is_reftype(ty), ¬ has_classtype(ty) ∨ tdname+∃(str0, ty .jtclass), jvmref ∈ st, validref(str0, r, ty, st) ⊦ ty = void_type, validref(str, r, ty, st), tdname+∃(str0, ty .jtelemtype .class)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (ty, str0)]]