| 0 ≤ n→i(m) + n→i(m0), ∀ r, val, m, st. addarray(r, mklist(val, m0), n→i(m), addarray(r, mklist(val, m), 0, st)) = addarray(r, val, n→i(m0) + n→i(m), st) ⊦ addarray(r, mklist(val, m0 + 1), n→i(m), addarray(r, mklist(val, m), 0, st)) = (addarray(r, val, n→i(m0) + n→i(m), st)[r -- (n→i(m0) + n→i(m)) ', val]) |
⊦ n ≠ 0 → mklist(val, n) = mklist(val, n -1) + val '
m0 + 1 ≠ 0, 0 ≤ n→i(m) + n→i(m0), ∀ r, val, m, st. addarray(r, mklist(val, m0), n→i(m), addarray(r, mklist(val, m), 0, st)) = addarray(r, val, n→i(m0) + n→i(m), st) ⊦ addarray(r, mklist(val, (m0 + 1) -1) + val ', n→i(m), addarray(r, mklist(val, m), 0, st)) = (addarray(r, val, n→i(m0) + n→i(m), st)[r -- (n→i(m0) + n→i(m)) ', val])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m + 1 ≠ 0], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ m + n = n + m])], [EXTRATERMS : (m0 + 1, val)]]