| ∀ r, r0, sks, class, st. r = r0 ∨ (hasKeys(r, sks, addobj(r0, class, fis0, st)) ↔ hasKeys(r, sks, st)) ⊦ r = r0, hasKeys(r, sks, addobj(r0, class, fv + fis0, st)) ↔ hasKeys(r, sks, st) |
⊦ addobj(r, class1, fv ' + fis, st) = (addobj(r, class1, fis, st)[r -- fv .1, fv .2])
∀ r, r0, sks, class, st. r = r0 ∨ (hasKeys(r, sks, addobj(r0, class, fis0, st)) ↔ hasKeys(r, sks, st)) ⊦ r = r0, hasKeys(r, sks, addobj(r0, class, fis0, st)) ↔ hasKeys(r, sks, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r ≠ r0 → ( hasKeys (r, sks, st[r0 -- sk, val]) ↔ hasKeys(r, sks, st))], [CSIMPSEQ : ⊦ (fis + fis0) + fis1 = fis + fis0 + fis1], [CSIMPSEQ : ⊦ fv + fis = fv ' + fis])]]