| ∀ st, ty, r, vals0. # vals0 < # vals → (true → putArray(vals0, r, 0, addarray(r, initial_value(ty), n→i(# vals0), st)) = addarray(r, vals0, 0, st)) ⊦ putArray(vals, r, 0, addarray(r, initial_value(ty), n→i(# vals) - 1, st)[r -- (n→i(# vals) - 1) ', initial_value(ty)]) = addarray(r, vals, 0, st), vals = [] |
n→i(# vals) = i + 1, ∀ st, ty, r, vals0. # vals0 < # vals → (true → putArray(vals0, r, 0, addarray(r, initial_value(ty), n→i(# vals0), st)) = addarray(r, vals0, 0, st)) ⊦ putArray(vals, r, 0, addarray(r, initial_value(ty), i, st)[r -- i ', initial_value(ty)]) = addarray(r, vals, 0, st), vals = []
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ i0 = i - j ↔ i = i0 + j])], [EXTRATERMS : (n→i(# vals), 1, i)]]