| ⊦ (addarray(r, ty, i, st)[_out]) = st[_out] |
⊦ addarray(r, ty, i, st) = addarray(r, initial_value(ty), i, st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(i)])
⊦ (addarray(r, val, i, st)[_out]) = st[_out]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (st[r -- _type, val][_out]) = st[_out]], [CSIMPSEQ : ⊦ _out ≠ r -- _length], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))])]]