| sks ≠ [], sks = [] ∨ (∀ st, r, sk, val, r0, val0. (st[r -- sk, val][r0 -- sks, val0]) = (st[r0 -- sks, val0][r -- sk, val]) ∨ sk ∈ sks) ⊦ (st[r -- sk, val][(st[r -- sk, val][r0 -- sk0]) .refval -- sks, val0]) = (st[r0 -- (sk0 ' + sks), val0][r -- sk, val]), sk = sk0, sk ∈ sks |
∀ st, r, sk, val, r0, val0. (st[r -- sk, val][r0 -- sks, val0]) = (st[r0 -- sks, val0][r -- sk, val]) ∨ sk ∈ sks ⊦ sk = sk0, sks = [], (st[r -- sk, val][st[r0 -- sk0] .refval -- sks, val0]) = (st[r0 -- (sk0 ' + sks), val0][r -- sk, val]), sk ∈ sks
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ sk ≠ sk0 → (st[r -- sk, val][r0 -- sk0]) = st[r0 -- sk0]])]]