| 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 |
⊦ is_fskey(sk) ∧ sk ≠ _length ∧ sk ≠ _type → (addarray(r, ty, vals, st)[r0 -- sk]) = st[r0 -- sk]
¬ (is_fskey(sk) ∧ sk ≠ _length ∧ sk ≠ _type), 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
⊦ is_fskey(sk) ∧ sk ≠ _type ∧ sk ≠ _length → (addarray(r, ty, i, st)[r0 -- sk]) = st[r0 -- sk]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_fskey(sk) → (putArray(vals, r, i, st) [r0 -- sk ] ) = st[r0 -- sk]])], [EXTRATERMS : (sk, r, st, mklist(initial_value(ty), i→n(i)) + vals, ty, r)]]