| sk .fs = mkfs(class, ty, fieldvar), r ∈ st, r -- sk ∈ st, type∃(str, ty), okval(st[r -- sk], ty) ⊦ ty = void_type, is_fskey(sk) ∧ (is_reftype(ty) → validrefval(str, st[r -- sk], ty, st)) ↔ ¬ is_indexkey(sk) ∧ (is_referencevalue(st[r -- sk]) → validrefval(str, st[r -- sk], ty, st)) |
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_referencevalue(val) → ( okval(val, ty) ↔ ty = void_type ∨ is_reftype(ty))], [CSIMPSEQ : ⊦ ¬ is_indexkey(sk) ↔ is_fskey(sk)], [CSIMPSEQ : ⊦ ¬ is_fskey(sk) ↔ is_indexkey(sk)], [CSIMPSEQ : ⊦ is_indexkey(sk) → ¬ is_fskey(sk)], [CSIMPSEQ : ⊦ is_reftype(ty) → ( okval(val, ty) ↔ is_referencevalue(val))])]]