| r -- mkfs(class, ty, fieldvar) ' ∈ st, r ∈ st, type∃(str, ty), st ⊆ st0, okval(st[r -- mkfs(class, ty, fieldvar) '], ty), r -- mkfs(class, ty, fieldvar) ' ∈ st0, r ∈ st0, is_reftype(ty) → validrefval(str, st[r -- mkfs(class, ty, fieldvar) '], ty, st) ⊦ ty = void_type, (is_reftype(ty) → validrefval(str, st0[r -- mkfs(class, ty, fieldvar) '], ty, st0)) ∧ okval(st0[r -- mkfs(class, ty, fieldvar) '], ty) |
⊦ rk ∈ st ∧ st ⊆ st1 → st1[rk] = st[rk]
r -- mkfs(class, ty, fieldvar) ' ∈ st ∧ st ⊆ st0, r -- mkfs(class, ty, fieldvar) ' ∈ st, r ∈ st, type∃(str, ty), st ⊆ st0, okval(st[r -- mkfs(class, ty, fieldvar) '], ty), r -- mkfs(class, ty, fieldvar) ' ∈ st0, r ∈ st0, is_reftype(ty) → validrefval(str, st[r -- mkfs(class, ty, fieldvar) '], ty, st) ⊦ ty = void_type, (is_reftype(ty) → validrefval(str, st[r -- mkfs(class, ty, fieldvar) '], ty, st0)) ∧ okval(st[r -- mkfs(class, ty, fieldvar) '], ty)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (r -- mkfs(class, ty, fieldvar) ', st, st0)]]