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