| sks0 = sks + sk2 ', ∀ r1, sk1, st0, r2, val0. r1 -- sk1 ∈ st0[r2 -- sks0, val0] ↔ r1 -- sk1 ∈ st0 ∨ r1 = st0[r2 -- sks] .refval ∧ sk1 = sk2 ⊦ sks0 = [], r0 -- sk ∈ st[st[r -- sk0] .refval -- sks0, val] ↔ r0 -- sk ∈ st ∨ r0 = st[r -- (sk0 ' + sks)] .refval ∧ sk = sk2, # sks0 = 1 |
∀ r1, sk1, st0, r2, val0. r1 -- sk1 ∈ st0[r2 -- (sks + sk2 '), val0] ↔ r1 -- sk1 ∈ st0 ∨ r1 = st0[r2 -- sks] .refval ∧ sk1 = sk2 ⊦ r0 -- sk ∈ st[st[r -- sk0] .refval -- (sks + sk2 '), val] ↔ r0 -- sk ∈ st ∨ r0 = st[r -- (sk0 ' + sks)] .refval ∧ sk = sk2, sks = []
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ # sks = 0 ↔ sks = []], [CSIMPSEQ : ⊦ m + n = 1 ↔ m = 0 ∧ n = 1 ∨ n = 0 ∧ m = 1], [CSIMPSEQ : ⊦ # sk ' = 0 +1], [CSIMPSEQ : ⊦ # (sks + sks0) = # sks + # sks0], [CSIMPSEQ : ⊦ (sks + sks0) + sks1 = sks + sks0 + sks1], [CSIMPSEQ : ⊦ sks + sk ' ≠ []])]]