| 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) |
⊦ validref(str0, r, ty, st) ∧ same-subclasses-contains(ty .jtelemtype .class, str, str0) ∧ tdname+∃(str0, ty .jtelemtype .class) → validref(str, r, ty, st)
¬ (validref(str0, r, ty, st) ∧ same-subclasses-contains(ty .jtelemtype .class, str, str0) ∧ tdname+∃(str0, ty .jtelemtype .class)), 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)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (str0, r, ty, st, str)]]