| ∃ sks0, sks1. sks = sks0 + (sk + sks1) ∧ st[r -- sks0] .refval = r0 ∧ (∀ sks2. sks2 + sk ⊑ sks0 → st[r -- sks2] .refval ≠ r0) ⊦ (st[r0 -- sk, val][r -- sks]) = st[r -- sks], ∃ sks0, sks1. sks = sks0 + sk ' + sks1 ∧ st[r -- sks0] .refval = r0 ∧ (∀ sks2. sks2 + sk ' ⊑ sks0 → st[r -- sks2] .refval ≠ st[r -- sks0] .refval) |
∀ sks. sks + sk ' ⊑ sks1 → st[r -- sks] .refval ≠ st[r -- sks1] .refval ⊦ (st[st[r -- sks1] .refval -- sk, val][r -- (sks1 + sk ' + sks0)]) = st[r -- (sks1 + sk ' + sks0)], ∃ sks, sks2. sks1 + sk ' + sks0 = sks + sk ' + sks2 ∧ st[r -- sks] .refval = st[r -- sks1] .refval ∧ (∀ sks3. sks3 + sk ' ⊑ sks → st[r -- sks3] .refval ≠ st[r -- sks] .refval)
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : list, storekeys, Last, ⊦ sks + sk = sks + sk '], [CSIMPNAMEDSEQ : list, storekeys, c, ⊦ sk + sks = sk ' + sks])]]