| 1 < 1 + n→i(# vals0), ∀ r0, i0, st0. getarray(r0, i0, n→i(# vals0), putArray(vals0, r0, i0, st0)) = vals0 ⊦ getarray(r, i, 1 + n→i(# vals0) - 1, putArray(vals0, r, i + 1, st)[r -- i ', val]) + (putArray(vals0, r, i + 1, st)[r -- i ', val][r -- (i + 1 + n→i(# vals0) - 1) ']) = val ' + vals0 |
∀ 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
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ 0 < n ↔ n ≠ 0], [CSIMPSEQ : 0 ≤ i ⊦ ((* i)) < n→i(n) ↔ i→n(i) < n], [CSIMPSEQ : ⊦ ((* j)) < i0 + ((* j0)) ↔ j - j0 < i0], [CSIMPSEQ : ⊦ vals + val = vals + val '], [CSIMPSEQ : ⊦ # vals = 0 ↔ vals = []], [CSIMPSEQ : ⊦ n→i(n) = 0 ↔ n = 0], [CSIMPSEQ : ⊦ i = i + j ↔ j = 0], [CSIMPSEQ : ⊦ i ' = i0 ' ↔ i = i0], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ ¬ ¬ (r = r0 ∧ sk = sk0)], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + 0 = i], [CSIMPSEQ : ⊦ ((* i)) + i0 - ((* j)) = (i - j) + i0])]]