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