| ¬ (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 |
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 : ⊦ ¬ is_fskey(sk) ↔ is_indexkey(sk)])]]