| (arraycopy(r, i, r, i, j - 1, st[r -- (i + j - 1) ', st[r -- (i + j - 1) ']])[r -- j0 ']) = (st[r -- (i + j - 1) ', st[r -- (i + j - 1) ']][r -- j0 ']), 0 < j, ∀ j1, r, i, st, j0. i→n(j1) < i→n(j) → (true → (arraycopy(r, i, r, i, j1, st)[r -- j0 ']) = st[r -- j0 ']) ⊦ (arraycopy(r, i, r, i, j - 1, st[r -- (i + j - 1) ', st[r -- (i + j - 1) ']])[r -- j0 ']) = st[r -- j0 '] |
(arraycopy(r, i, r, i, j - 1, st[r -- (i + j - 1) ', st[r -- (i + j - 1) ']])[r -- j0 ']) = ((i + j = j0 + 1 ⊃ st[r -- (i + j - 1) ']; st[r -- j0 '])), 0 < j, ∀ j1, r, i, st, j0. i→n(j1) < i→n(j) → (true → (arraycopy(r, i, r, i, j1, st)[r -- j0 ']) = st[r -- j0 ']) ⊦ ((i + j = j0 + 1 ⊃ st[r -- (i + j - 1) ']; st[r -- j0 '])) = st[r -- j0 ']
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i - j = i0 ↔ i = i0 + j], [CSIMPSEQ : ⊦ i ' = i0 ' ↔ i = i0], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ r = r0 ∧ sk = sk0], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))])]]