| ∀ r, val, st. addarray(r, mklist(val, m), 0, st) = addarray(r, val, n→i(m), st) ⊦ addarray(r, mklist(val, m) + val ', 0, st) = (addarray(r, val, n→i(m), st)[r -- n→i(m) ', val]) |
⊦ vals ≠ [] → addarray(r, vals, i, st) = (addarray(r, vals .butlast, i, st)[r -- (i + n→i(# vals) - 1) ', vals .last])
mklist(val, m) + val ' ≠ [], ∀ r, val, st. addarray(r, mklist(val, m), 0, st) = addarray(r, val, n→i(m), st) ⊦ (addarray(r, (mklist(val, m) + val ') .butlast, 0, st)[r -- (0 + n→i(# (mklist(val, m) + val ')) - 1) ', (mklist(val, m) + val ') .last]) = (addarray(r, val, n→i(m), st)[r -- n→i(m) ', val])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ vals + vals0 ≠ [] ↔ vals = [] ∧ vals0 = []], [CSIMPSEQ : ⊦ mklist(val, m) = [] ↔ m = 0], [CSIMPSEQ : ⊦ val ' ≠ []], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1])], [EXTRATERMS : (st, 0, mklist(val, m) + val ', r)]]