| ⊦ putArray (vals, r, 0, addarray(r, initial_value(ty), n→i(# vals), st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals) + 1)]) [r -- n→i(# vals) ', initial_value(ty) ]) = (addarray(r, ty, vals, st)[r -- n→i(# vals) ', initial_value(ty)][r -- _length, intval(n→i(# vals) + 1)]) |
⊦ rk .ref ≠ r ∨ is_fskey(rk .key) ∨ rk .key .index < j ∨ n→i(# vals) + j ≤ rk .key .index → (putArray(vals, r, j, st)[rk, val]) = putArray(vals, r, j, st[rk, val])
(r -- n→i(# vals) ') .ref ≠ r ∨ is_fskey((r -- n→i(# vals) ') .key) ∨ (r -- n→i(# vals) ') .key .index < 0 ∨ n→i(# vals) + 0 ≤ (r -- n→i(# vals) ') .key .index ⊦ (putArray(vals, r, 0, addarray(r, initial_value(ty), n→i(# vals), st[r -- _type, typeval(mkarraytype(ty))][r -- _length, intval(n→i(# vals) + 1)])) [r -- n→i(# vals) ', initial_value(ty) ] ) = (addarray(r, ty, vals, st)[r -- n→i(# vals) ', initial_value(ty)][r -- _length, intval(n→i(# vals) + 1)])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (r -- sk) .ref = r], [CSIMPSEQ : ⊦ (r -- sk) .key = sk], [CSIMPSEQ : ⊦ ¬ is_fskey(i ')], [CSIMPSEQ : ⊦ i ' .index = i], [CSIMPSEQ : ⊦ ¬ n→i(n) < 0], [CSIMPSEQ : ⊦ i + 0 = i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ n→i(m) ≤ n→i(n) ↔ m ≤ n], [CSIMPSEQ : ⊦ ¬ m ≤ n ↔ n < m], [CSIMPSEQ : ⊦ ¬ n < n])], [EXTRATERMS : (initial_value(ty), r -- n→i(# vals) ', addarray (r, initial_value(ty), n→i(# vals), st[r -- _type, typeval(mkarraytype(ty))] [r -- _length, intval(n→i(# vals) + 1) ]), 0, r, vals)]]