| ⊦ i2 + i3 ≤ st0[r2 -- _length] .intval ∧ 0 ≤ i2 ∧ i < i3 ∧ 0 ≤ i ∧ r1 ≠ r2 ∧ exactarray(r2, int_type, st0) → arraycopy(r1, i1, r2, i2, i3, st0[r2 -- (i2 + i) ', val]) = arraycopy(r1, i1, r2, i2, i3, st0) |
⊦ exactarray(r, ty, st) → r ≠ jvmref ∧ r ∈ st
i2 + i3 ≤ st0[r2 -- _length] .intval, i < i3, exactarray(r2, int_type, st0), 0 ≤ i2, 0 ≤ i, 0 < i3, r2 ∈ st0 ⊦ arraycopy(r1, i1, r2, i2, i3, st0[r2 -- (i2 + i) ', val]) = arraycopy(r1, i1, r2, i2, i3, st0), r1 = r2, r2 = jvmref
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPFORWARD : ⊦ i ≤ j ∧ j < j0 → i < j0])]]