| 0 ≤ i, i→n(i) < # vals0, i→n(i) + # vals ≤ # vals0, i→n(i) + n < # vals0, 0 ≤ n→i(n) + i ⊦ vals0 = [], (putArray(vals, r0, i, addarray(r0, ty, vals0, st))[r0 -- (n→i(n) + i) ']) = (vals + restn(i→n(i) + # vals, vals0))[n] |
⊦ j ≤ i ∧ i < n→i(# vals) + j → (putArray(vals, r, j, st)[r -- i ']) = vals[i→n(i - j)]
¬ (i ≤ n→i(n) + i ∧ n→i(n) + i < n→i(# vals) + i), 0 ≤ i, i→n(i) < # vals0, i→n(i) + # vals ≤ # vals0, i→n(i) + n < # vals0, 0 ≤ n→i(n) + i ⊦ vals0 = [], (putArray(vals, r0, i, addarray(r0, ty, vals0, st))[r0 -- (n→i(n) + i) ']) = (vals + restn(i→n(i) + # vals, vals0))[n]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i + j - i = j], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i→n(n→i(n)) = n], [CSIMPSEQ : ⊦ i ≤ i + j ↔ 0 ≤ j], [CSIMPSEQ : ⊦ 0 ≤ n→i(n)], [CSIMPSEQ : ⊦ i + j < i + i0 ↔ j < i0], [CSIMPSEQ : ⊦ n→i(m) < n→i(n) ↔ m < n], [CSIMPSEQ : ⊦ n < # vals → (vals + vals0)[n] = vals[n]], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1])], [EXTRATERMS : (n→i(n) + i, addarray(r0, ty, vals0, st), i, r0, vals)]]