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