| ∀ j, r, st, val. 0 ≤ j → (putArray(vals0, r, j, st)[r -- (j + n→i(# vals0)) ', val]) = putArray(vals0 + val ', r, j, st), 0 ≤ j ⊦ (putArray(vals0, r, j + 1, st)[r -- j ', val0][r -- (j + n→i(# (val0 ' + vals0))) ', val]) = (putArray(vals0, r, j + 1, st[r -- ((j + 1) + n→i(# vals0)) ', val])[r -- j ', val0]) |
⊦ # (val ' + vals) = (# vals) +1
∀ j, r, st, val. 0 ≤ j → (putArray(vals0, r, j, st)[r -- (j + n→i(# vals0)) ', val]) = putArray(vals0 + val ', r, j, st), 0 ≤ j ⊦ (putArray(vals0, r, j + 1, st)[r -- j ', val0][r -- (j + n→i((# vals0) +1)) ', val]) = (putArray(vals0, r, j + 1, st[r -- ((j + 1) + n→i(# vals0)) ', val])[r -- j ', val0])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (vals0, val0)]]