| sk0 .fs = mkfs(class0, ty, fieldvar), ∀ r, r0, sk, class, st. r ≠ r0 ∨ ¬ sk ∈ sks0 ∧ sk ≠ _type → (addobj(r0, class, sks0, st)[r -- sk]) = st[r -- sk], r ≠ r0 ∨ sk ≠ sk0 ∧ ¬ sk ∈ sks0 ∧ sk ≠ _type, r ≠ r0 ∨ sk ≠ sk0 ⊦ (addobj(r0, class, sks0, st)[r0 -- sk0, initial_value(ty)][r -- sk]) = st[r -- sk] |
⊦ rk ≠ rk0 → (st[rk0, val][rk]) = st[rk]
r -- sk ≠ r0 -- sk0, sk0 .fs = mkfs(class0, ty, fieldvar), ∀ r, r0, sk, class, st. r ≠ r0 ∨ ¬ sk ∈ sks0 ∧ sk ≠ _type → (addobj(r0, class, sks0, st)[r -- sk]) = st[r -- sk], r ≠ r0 ∨ sk ≠ sk0 ∧ ¬ sk ∈ sks0 ∧ sk ≠ _type, r ≠ r0 ∨ sk ≠ sk0 ⊦ (addobj(r0, class, sks0, st)[r -- sk]) = st[r -- sk]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ r = r0 ∧ sk = sk0])], [EXTRATERMS : (r -- sk, initial_value(ty), r0 -- sk0, addobj(r0, class, sks0, st))]]