| 0 ≤ n→i(# vals) + i, 0 ≤ j, 0 ≤ i, i ≤ j, j ≤ n→i(# vals) + i ⊦ (putArray(vals, r, i, addarray(r, ty, j, st))[r -- sk]) = (addarray(r, ty, mklist(initial_value(ty), i→n(i)) + vals, st)[r -- sk]), sk = _length, ¬ is_indexkey(sk) ∧ sk ≠ _type |
⊦ (addarray(r, ty, i, st)[r -- _type]) = typeval(mkarraytype(ty))
⊦ (addarray(r, ty, vals, st)[r -- _type]) = typeval(mkarraytype(ty))
0 ≤ n→i(# vals) + i, 0 ≤ j, 0 ≤ i, i ≤ j, j ≤ n→i(# vals) + i, is_indexkey(sk) ⊦ (putArray(vals, r, i, addarray(r, ty, j, st))[r -- sk]) = (addarray(r, ty, mklist(initial_value(ty), i→n(i)) + vals, st)[r -- sk]), sk = _length, sk = _type
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ typeval(ty) = typeval(ty0) ↔ ty = ty0], [CSIMPSEQ : ⊦ (putArray(vals, r, i, st) [r0 -- _type ] ) = st[r0 -- _type]], [CSIMPSEQ : ⊦ _type ≠ _length])]]