| 0 < j, i0 ≤ j0, j0 < i0 + j, ∀ j1, j0, i0, r0, r, i, st. i→n(j1) < i→n(j) → (j0 < i0 + j1 ∧ i0 ≤ j0 ∧ 0 < j1 → r0 -- j0 ' ∈ arraycopy(r, i, r0, i0, j1, st)) ⊦ i0 + j = j0 + 1, r0 -- j0 ' ∈ arraycopy(r, i, r0, i0, j - 1, st[r0 -- (i0 + j - 1) ', st[r -- (i + j - 1) ']]) |
⊦ arraycopy(r1, i1, r2, i2, 0, st) = st
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i→n(i - 1) < i→n(i) ↔ 0 < i], [CSIMPSEQ : ⊦ i + (j - i0) = i + j - i0], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i < j - i0 ↔ i + i0 < j], [CSIMPSEQ : ⊦ i ≠ i0 → (¬ i < i0 ↔ i0 < i)], [CSIMPSEQ : ⊦ i < j + 1 ↔ i ≤ j], [CSIMPSEQ : ⊦ i < j → (¬ ¬ j ≤ i ↔ false)], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ 0 < i → (i ≤ 1 ↔ i = 1)], [CSIMPSEQ : ⊦ i = j → i - j = 0], [CSIMPSEQ : ⊦ i + j = i + i0 ↔ j = i0], [CSIMPSEQ : ⊦ i ≠ j → (i ≤ j ↔ i < j)], [CSIMPSEQ : ⊦ i ' = i0 ' ↔ i = i0], [CSIMPSEQ : ⊦ i + 0 = i], [CSIMPSEQ : ⊦ ((* i)) + i0 - ((* j)) = (i - j) + i0], [CSIMPSEQ : sk ≠ sk0 ⊦ r -- sk ∈ st[r -- sk0, val] ↔ r -- sk ∈ st], [CSIMPSEQ : ⊦ i ≤ j → (j ≤ i ↔ i = j)])], [EXTRATERMS : (j - 1, j0, i0, r0, r, i, st[r0 -- (i0 + j - 1) ', st[r -- (i + j - 1) ']])]]