| 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 ']), ¬ i0 < i2 ∧ ¬ i2 + i3 ≤ i0 |
⊦ j0 < i0 → (arraycopy(r, i, r0, i0, j, st)[r0 -- j0 ']) = st[r0 -- j0 ']
¬ i0 < i2, 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 ']), ¬ i0 < i2 ∧ ¬ i2 + i3 ≤ i0
i0 < i2, 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)) ∧ (st0[r2 -- (i2 + i) ', val][r2 -- i0 ']) = (arraycopy(r1, i1, r2, i2, i3, st0)[r2 -- i0 ']), ¬ i0 < i2 ∧ ¬ i2 + i3 ≤ i0
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (i0, st0[r2 -- (i2 + i) ', val], i3, i2, r2, i1, r1)]]