| ∀ 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 ⊦ (addobj(r0, class, sks0, st)[r0 -- sk0, initial_value(sk0 .fs .type)][r -- sk]) = st[r -- sk] |
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 ⊦ (addobj(r0, class, sks0, st)[r0 -- sk0, initial_value(ty)][r -- sk]) = st[r -- sk]
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ class = fs .class ∧ ty = fs .type ∧ fieldvar = fs .field ↔ fs = mkfs(class, ty, fieldvar)])], [EXTRATERMS : (sk0 .fs, class0, ty, fieldvar)]]