| onlyModified(r, st, st0), r -- sk ∈ st, r ∈ st ⊦ sk = _length, sk = _type, (∀ rk. rk ∈ st ↔ rk ∈ st0[r -- sk, val]) ∧ (∀ r0, sk0. r0 ≠ r → st[r0 -- sk0] = (st0[r -- sk, val][r0 -- sk0])) ∧ (r -- _type ∈ st → st[r -- _type] = (st0[r -- sk, val][r -- _type])) ∧ (r -- _length ∈ st → st[r -- _length] = (st0[r -- sk, val][r -- _length])) |
⊦ ¬ rk ∈ st ∧ onlyModified(r, st, st0) → ¬ rk ∈ st0
onlyModified(r, st, st0), r -- sk ∈ st, r ∈ st ⊦ sk = _length, sk = _type, (rk ∈ st → rk = r -- sk ∨ rk ∈ st0) ∧ (r0 ≠ r → st[r0 -- sk0] = st0[r0 -- sk0]) ∧ (r -- _type ∈ st → st[r -- _type] = st0[r -- _type]) ∧ (r -- _length ∈ st → st[r -- _length] = st0[r -- _length])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ ¬ ¬ (r = r0 ∧ sk = sk0)], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))], [CSIMPSEQ : ⊦ r ≠ r0 → (st[r0 -- sk0, val][r -- sk]) = st[r -- sk]], [CSIMPSEQ : ⊦ rk ∈ st[rk0, val] ↔ rk = rk0 ∨ rk ∈ st])]]