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