| ⊦ (putArray(vals, r, 0, addarray(r, initial_value(ty), n→i(# vals), st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals) + 1)])) [r -- n→i(# vals) ', initial_value(ty) ] ) = (addarray(r, ty, vals, st)[r -- n→i(# vals) ', initial_value(ty)][r -- _length, intval(n→i(# vals) + 1)]) |
⊦ i = n→i(# vals) ∧ val = initial_value(ty) → putArray(vals, r, 0, addarray(r, val, i, st)) = addarray(r, vals, 0, st)
n→i(# vals) = n→i(# vals) ∧ initial_value(ty) = initial_value(ty) ⊦ (addarray(r, vals, 0, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals) + 1)])[r -- n→i(# vals) ', initial_value(ty)]) = (addarray(r, ty, vals, st)[r -- n→i(# vals) ', initial_value(ty)][r -- _length, intval(n→i(# vals) + 1)])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (n→i(# vals), vals, initial_value(ty), ty, r, st[r -- _type, typeval(mkarraytype(ty))] [r -- _length, intval(n→i(# vals) + 1) ])]]