| 0 ≤ i, i + n→i(# vals) ≤ n→i(# vals0) ⊦ (addarray(r0, ty, vals0, st)[r0 -- fs ']) = (addarray(r0, ty, firstn(i→n(i), vals0) + vals + restn(i→n(i) + # vals, vals0), st)[r0 -- fs ']), fs ' ≠ _length ∧ fs ' ≠ _type |
0 ≤ i, i + n→i(# vals) ≤ n→i(# vals0) ⊦ fs ' ≠ _length, (addarray(r0, ty, vals0, st)[r0 -- fs ']) = (addarray(r0, ty, firstn(i→n(i), vals0) + vals + restn(i→n(i) + # vals, vals0), st)[r0 -- fs '])
⊦ (addarray(r, ty, vals, st)[r -- _type]) = typeval(mkarraytype(ty))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ typeval(ty) = typeval(ty0) ↔ ty = ty0])]]