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