| ∀ r0, i0, st0. getarray(r0, i0, n→i(# vals0), putArray(vals0, r0, i0, st0)) = vals0 ⊦ vals0 = [], getarray(r, i, n→i(# vals0), putArray(vals0, r, i + 1, st)[r -- i ', val]) + (putArray(vals0, r, i + 1, st)[r -- (n→i(# vals0) + i) ']) ' = val ' + vals0 |
⊦ j ≤ i ∧ i < n→i(# vals) + j → (putArray(vals, r, j, st)[r -- i ']) = vals[i→n(i - j)]
i + 1 ≤ n→i(# vals0) + i ∧ n→i(# vals0) + i < n→i(# vals0) + i + 1, ∀ r0, i0, st0. getarray(r0, i0, n→i(# vals0), putArray(vals0, r0, i0, st0)) = vals0 ⊦ vals0 = [], getarray(r, i, n→i(# vals0), putArray(vals0, r, i + 1, st)[r -- i ', val]) + vals0[i→n(n→i(# vals0) + i - i + 1)] ' = val ' + vals0
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i + j ≤ i0 + j ↔ i ≤ i0], [CSIMPSEQ : ⊦ 1 ≤ i ↔ 0 < i], [CSIMPSEQ : 0 ≤ i ⊦ ((* i)) < n→i(n) ↔ i→n(i) < n], [CSIMPSEQ : ⊦ 0 < n ↔ n ≠ 0], [CSIMPSEQ : ⊦ # vals = 0 ↔ vals = []], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j < i + i0 ↔ j < i0], [CSIMPSEQ : ⊦ i < j + 1 ↔ i ≤ j], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ ¬ i < i])], [EXTRATERMS : (n→i(# vals0) + i, st, i + 1, r, vals0)]]