| r ≠ r0 ∨ ¬ sk ∈ sks ∧ sk ≠ _type ⊦ (addobj(r0, class, sks, st)[r -- sk]) = st[r -- sk] |
⊦ addobj(r, class, [], st) = st[r -- _type, typeval(mkclasstype(class))]
∀ 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 + sks0 ∧ sk ≠ _type ⊦ (addobj(r0, class, sk0 + sks0, st)[r -- sk]) = st[r -- sk]
[[CONCRETESIMPRULES : ([CSIMPGEN : storekeys generated by [], +;], [CSIMPSEQ : ⊦ ¬ sk ∈ []], [CSIMPSEQ : ⊦ r ≠ r0 → (st[r0 -- sk0, val][r -- sk]) = st[r -- sk]], [CSIMPSEQ : ⊦ sk ≠ sk0 → (st[r -- sk, val][r0 -- sk0]) = st[r0 -- sk0]])]]