| sks0 = sk1 + sks, sks0 = sk1 ' ⊦ sks0 = [], r0 -- sk ∈ st[r -- (sk0 ' + sks0), val] ↔ r0 -- sk ∈ st ∨ r0 = st[r -- (sk0 ' + sks0 .butlast)] .refval ∧ sk = sk1 |
⊦ st[r -- sk '] = st[r -- sk]
⊦ r0 -- sk ∈ st[r -- (sk0 ' + sk1 '), val] ↔ r0 -- sk ∈ st ∨ r0 = st[r -- sk0] .refval ∧ sk = sk1
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ sk ' .butlast = []], [CSIMPSEQ : ⊦ sks + [] = sks], [CSIMPSEQ : ⊦ sk ' + sks ≠ []], [CSIMPSEQ : ⊦ (sks + sks0) + sks1 = sks + sks0 + sks1], [CSIMPSEQ : ⊦ sk ' = sk0 ' + sks ↔ sk = sk0 ∧ sks = []], [CSIMPSEQ : ⊦ sk + sks = sk ' + sks])]]