| vals = [], 0 ≤ j + n→i(# vals), j ≤ i, i ≤ j + n→i(# vals), 0 ≤ j, 0 ≤ i, ∀ st, val, r, j, i, vals0. # vals0 < # vals → ( 0 ≤ i ∧ 0 ≤ j ∧ i ≤ j + n→i(# vals0) ∧ j ≤ i ∧ 0 ≤ j + n→i(# vals0) → putArray(vals0, r, j, addarray(r, val, i, st)) = addarray(r, mklist(val, i→n(j)) + vals0, 0, st)) ⊦ putArray(vals, r, j, addarray(r, val, i, st)) = addarray(r, mklist(val, i→n(j)) + vals, 0, st) |
0 ≤ i, ∀ st, val, r, j, i, vals0. # vals0 < # [] → ( 0 ≤ i ∧ 0 ≤ j ∧ i ≤ j + n→i(# vals0) ∧ j ≤ i ∧ 0 ≤ j + n→i(# vals0) → putArray(vals0, r, j, addarray(r, val, i, st)) = addarray(r, mklist(val, i→n(j)) + vals0, 0, st)) ⊦ addarray(r, val, i, st) = addarray(r, mklist(val, i→n(i)), 0, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i ≤ i], [CSIMPSEQ : ⊦ i ≤ j → (j ≤ i ↔ i = j)], [CSIMPSEQ : ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + 0 = i], [CSIMPSEQ : ⊦ # [] = 0], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPSEQ : ⊦ vals + [] = vals], [CSIMPSEQ : ⊦ putArray([], r, i, st) = st])]]