| ∀ r1, r0, i0, st. r1 ∈ putArray(vals0, r0, i0, st) ↔ r1 ∈ st ∨ r1 = r0 ∧ vals0 ≠ [] ⊦ r1 ∈ putArray(val + vals0, r0, i0, st) ↔ r1 ∈ st ∨ r1 = r0 ∧ val + vals0 ≠ [] |
⊦ putArray(val ' + vals, r, i, st) = (putArray(vals, r, i + 1, st)[r -- i ', val])
∀ r1, r0, i0, st. r1 ∈ putArray(vals0, r0, i0, st) ↔ r1 ∈ st ∨ r1 = r0 ∧ vals0 ≠ [] ⊦ r1 ∈ (putArray(vals0, r0, i0 + 1, st)[r0 -- i0 ', val]) ↔ r1 = r0 ∨ r1 ∈ st
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ val ' ≠ []], [CSIMPSEQ : ⊦ ¬ vals + vals0 ≠ [] ↔ vals = [] ∧ vals0 = []], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPSEQ : ⊦ val + vals = val ' + vals])]]