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