| j = i0 + i + n→i(# vals), i ≤ j, 0 ≤ i, 0 ≤ j, n→i(# vals) + i < j ⊦ putArray(vals, r, i, addarray(r, ty, j, st)) = (addarray(r, ty, mklist(initial_value(ty), i→n(i)) + vals + mklist(initial_value(ty), i→n(i0)), st)[r -- _length, intval(j)]) |
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)) = (addarray(r, ty, mklist(initial_value(ty), i→n(i)) + vals + mklist(initial_value(ty), i→n(i0)), st)[r -- _length, intval(i0 + i + n→i(# vals))])
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j], [CSIMPSEQ : ⊦ i < i + j ↔ 0 < j], [CSIMPSEQ : ⊦ i + j < i + i0 ↔ j < i0], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i ≤ i + j ↔ 0 ≤ j])]]