| sk .fs = mkfs(class, ty, fieldvar), level⊆(str, str0), goodfieldandtype(r, sk, st), type∃(str, ty), is_reftype(ty), type∃(str0, ty), validrefval(str, st[r -- sk], ty, st) ⊦ ty = void_type, validrefval(str0, st[r -- sk], ty, st) |
⊦ validrefval(str, val, ty, st) ↔ is_referencevalue(val) ∧ validref(str, val .refval, ty, st)
sk .fs = mkfs(class, ty, fieldvar), level⊆(str, str0), goodfieldandtype(r, sk, st), type∃(str, ty), is_reftype(ty), type∃(str0, ty), is_referencevalue(st[r -- sk]) ∧ validref(str, st[r -- sk] .refval, ty, st) ⊦ ty = void_type, validrefval(str0, st[r -- sk], ty, st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, ty, st[r -- sk], str)]]