| ⊦ addarray(r, ty, (val ' + val0 ' + vals)[1, val1], st) = addarray(r, ty, val ' + val1 ' + vals, st) |
⊦ n ≠ 0 ∧ vals ≠ [] → vals[n, val] = vals .first ' + (vals .rest)[n -1, val]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ val ' ≠ []], [CSIMPSEQ : ⊦ ¬ vals + vals0 ≠ [] ↔ vals = [] ∧ vals0 = []], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPSEQ : ⊦ (val ' + vals) .first = val], [CSIMPSEQ : ⊦ (val ' + vals) .rest = vals], [CSIMPSEQ : ⊦ (val ' + vals)[0, val0] = val0 + vals], [CSIMPSEQ : ⊦ val + vals = val ' + vals], [CSIMPSEQ : ⊦ val ' + vals ≠ []])], [EXTRATERMS : (val1, 1, val ' + val0 ' + vals)]]