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