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