| ⊦ (addarray(r, ty, i, st)[_mode]) = st[_mode] |
⊦ 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)[_mode]) = st[_mode]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r -- _type ≠ _mode], [CSIMPSEQ : ⊦ _mode ≠ r -- _length], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))])]]