| ∀ r, r0, j, st, sk. r = r0 ∨ (putArray(vals0, r, j, st)[r0 -- sk]) = st[r0 -- sk] ⊦ r = r0 ∨ (putArray(val + vals0, r, j, st)[r0 -- sk]) = st[r0 -- sk] |
⊦ putArray(val ' + vals, r, i, st) = (putArray(vals, r, i + 1, st)[r -- i ', val])
∀ r, r0, j, st, sk. r = r0 ∨ (putArray(vals0, r, j, st)[r0 -- sk]) = st[r0 -- sk] ⊦ r = r0, (putArray(vals0, r, j + 1, st)[r0 -- sk]) = st[r0 -- sk]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r ≠ r0 → (st[r0 -- sk0, val][r -- sk]) = st[r -- sk]], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPSEQ : ⊦ val + vals = val ' + vals])]]