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