| 0 ≤ i, i + n→i(# vals) ≤ n→i(# vals0) ⊦ (putArray(vals, r, i, addarray(r, ty, vals0, st))[r0 -- sk]) = (addarray(r, ty, firstn(i→n(i), vals0) + vals + restn(i→n(i) + # vals, vals0), st)[r0 -- sk]) |
⊦ r ≠ r0 → (putArray(vals, r, j, st)[r0 -- sk]) = st[r0 -- sk]
¬ r ≠ r0, 0 ≤ i, i + n→i(# vals) ≤ n→i(# vals0) ⊦ (putArray(vals, r, i, addarray(r, ty, vals0, st))[r0 -- sk]) = (addarray(r, ty, firstn(i→n(i), vals0) + vals + restn(i→n(i) + # vals, vals0), st)[r0 -- sk])
⊦ r ≠ r0 → (addarray(r, ty, vals, st)[r0 -- sk]) = st[r0 -- sk]
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (sk, r0, addarray(r, ty, vals0, st), i, r, vals)]]