| 0 ≤ i, 0 ≤ i0 + n→i(# vals), 0 ≤ i0 + i + n→i(# vals), 0 < i0 ⊦ (putArray(vals, r, i, addarray(r, ty, i0 + i + n→i(# vals), st))[r -- i1 ']) = (addarray(r, ty, mklist(initial_value(ty), i→n(i)) + vals + mklist(initial_value(ty), i→n(i0)), st)[r -- i1 ']) |
⊦ j ≤ i ∧ i < n→i(# vals) + j → (putArray(vals, r, j, st)[r -- i ']) = vals[i→n(i - j)]
¬ (i ≤ i1 ∧ i1 < n→i(# vals) + i), 0 ≤ i, 0 ≤ i0 + n→i(# vals), 0 ≤ i0 + i + n→i(# vals), 0 < i0 ⊦ (putArray(vals, r, i, addarray(r, ty, i0 + i + n→i(# vals), st))[r -- i1 ']) = (addarray(r, ty, mklist(initial_value(ty), i→n(i)) + vals + mklist(initial_value(ty), i→n(i0)), st)[r -- i1 '])
i ≤ i1 ∧ i1 < n→i(# vals) + i, 0 ≤ i, 0 ≤ i0 + n→i(# vals), 0 ≤ i0 + i + n→i(# vals), 0 < i0 ⊦ vals[i→n(i1 - i)] = (addarray(r, ty, mklist(initial_value(ty), i→n(i)) + vals + mklist(initial_value(ty), i→n(i0)), st)[r -- i1 '])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (i1, addarray(r, ty, i0 + i + n→i(# vals), st), i, r, vals)]]