| ⊦ sk = _type, (addobj(r, class, fis, st)[r -- sk]) = st[r -- sk], sk ∈ fis |
⊦ addobj(r, class1, [], st) = st[r -- _type, typeval(mkclasstype(class1))]
∀ sk, r, class, st. sk = _type ∨ (addobj(r, class, fis0, st)[r -- sk]) = st[r -- sk] ∨ sk ∈ fis0 ⊦ sk = _type, (addobj(r, class, fv + fis0, st)[r -- sk]) = st[r -- sk], sk ∈ fv + fis0
[[CONCRETESIMPRULES : ([CSIMPGEN : fieldinits generated by [], +;], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ ¬ ¬ (r = r0 ∧ sk = sk0)])]]