| r2 ∈ st0, 0 < i3, 0 ≤ i, 0 ≤ i2, exactarray(r2, int_type, st0), i < i3, i2 + i3 ≤ st0[r2 -- _length] .intval ⊦ r2 = jvmref, r1 = r2, (r2 -- i0 ' ∈ arraycopy(r1, i1, r2, i2, i3, st0[r2 -- (i2 + i) ', val]) ↔ r2 -- i0 ' ∈ arraycopy(r1, i1, r2, i2, i3, st0)) ∧ (arraycopy(r1, i1, r2, i2, i3, st0[r2 -- (i2 + i) ', val])[r2 -- i0 ']) = (arraycopy(r1, i1, r2, i2, i3, st0)[r2 -- i0 ']) |
⊦ r ≠ r0 ∧ i0 ≤ j0 ∧ j0 < i0 + j → (arraycopy(r, i, r0, i0, j, st)[r0 -- j0 ']) = st[r -- ((j0 - i0) + i) ']
¬ (r1 ≠ r2 ∧ i2 ≤ i0 ∧ i0 < i2 + i3), r2 ∈ st0, 0 < i3, 0 ≤ i, 0 ≤ i2, exactarray(r2, int_type, st0), i < i3, i2 + i3 ≤ st0[r2 -- _length] .intval ⊦ r2 = jvmref, r1 = r2, (r2 -- i0 ' ∈ arraycopy(r1, i1, r2, i2, i3, st0[r2 -- (i2 + i) ', val]) ↔ r2 -- i0 ' ∈ arraycopy(r1, i1, r2, i2, i3, st0)) ∧ (arraycopy(r1, i1, r2, i2, i3, st0[r2 -- (i2 + i) ', val])[r2 -- i0 ']) = (arraycopy(r1, i1, r2, i2, i3, st0)[r2 -- i0 '])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i0 ≤ j0 ∧ j0 < i0 + j → r0 -- j0 ' ∈ arraycopy(r, i, r0, i0, j, st)], [CSIMPSEQ : ⊦ i + (j - i0) = i + j - i0], [CSIMPSEQ : ⊦ r ≠ r0 → (st[r0 -- sk0, val][r -- sk]) = st[r -- sk]], [CSIMPSEQ : ⊦ r ≠ r0 ∧ i0 ≤ j0 ∧ j0 < i0 + j → (arraycopy(r, i, r0, i0, j, st) [r0 -- j0 ' ] ) = st[r -- ((j0 - i0) + i) ']])], [EXTRATERMS : (i0, st0[r2 -- (i2 + i) ', val], i3, i2, r2, i1, r1)]]