| 0 ≤ j ⊦ (((i = i0 + j ∧ r = r0) ⊃ st[r1 -- (i1 + j) ']; arraycopy(r1, i1, r0, i0, j, st)[r -- i '])) = (arraycopy(r1, i1, r0, i0, j, st[r0 -- (i0 + j) ', st[r1 -- (i1 + j) ']])[r -- i ']), r1 = r0 |
⊦ (arraycopy(r, i, r0, i0, j, st)[r0 -- (i0 + j) ']) = st[r0 -- (i0 + j) ']
i ≠ i0 + j ∨ r ≠ r0, 0 ≤ j ⊦ (arraycopy(r1, i1, r0, i0, j, st)[r -- i ']) = (arraycopy(r1, i1, r0, i0, j, st[r0 -- (i0 + j) ', st[r1 -- (i1 + j) ']])[r -- i ']), r1 = r0
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0])]]