| 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 |
⊦ st1 = st2 ↔ (∀ rk. (rk ∈ st1 ↔ rk ∈ st2) ∧ st1[rk] = st2[rk])
i2 + i3 ≤ st0[r2 -- _length] .intval, i < i3, exactarray(r2, int_type, st0), 0 ≤ i2, 0 ≤ i, 0 < i3, r2 ∈ st0 ⊦ ∀ rk. (rk ∈ arraycopy(r1, i1, r2, i2, i3, st0[r2 -- (i2 + i) ', val]) ↔ rk ∈ arraycopy(r1, i1, r2, i2, i3, st0)) ∧ (arraycopy(r1, i1, r2, i2, i3, st0[r2 -- (i2 + i) ', val])[rk]) = (arraycopy(r1, i1, r2, i2, i3, st0)[rk]), r1 = r2, r2 = jvmref
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (arraycopy(r1, i1, r2, i2, i3, st0), arraycopy (r1, i1, r2, i2, i3, st0[r2 -- (i2 + i) ', val]))]]