| 0 < i1 + 1, n→i(# vals0) = i1 + 1, ∀ r0, i0, st0. getarray(r0, i0, i1 + 1, putArray(vals0, r0, i0, st0)) = vals0 ⊦ vals0 = [], ((putArray(vals0, r, i + 1, st)[r -- i ', val][r -- i ']) ' + getarray(r, i + 1, i1 + 1 - 1, putArray(vals0, r, i + 1, st)[r -- i ', val])) + vals0[i→n(i1)] ' = val ' + vals0 |
n→i(# vals0) = i1 + 1, 0 ≤ i1, ∀ r0, i0, st0. getarray(r0, i0, i1 + 1, putArray(vals0, r0, i0, st0)) = vals0 ⊦ vals0 = [], getarray(r, i + 1, i1, putArray(vals0, r, i + 1, st)[r -- i ', val]) + vals0[i→n(i1)] ' = vals0
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPSEQ : ⊦ (~1) < i ↔ 0 ≤ i], [CSIMPSEQ : ⊦ ((* j)) < i0 + ((* j0)) ↔ j - j0 < i0], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPSEQ : ⊦ vals + vals0 = vals + vals1 ↔ vals0 = vals1], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + 0 = i], [CSIMPSEQ : ⊦ ((* i)) + i0 - ((* j)) = (i - j) + i0], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))])]]