| 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 -- sk ∈ arraycopy(r1, i1, r2, i2, i3, st0[r2 -- (i2 + i) ', val]) ↔ r2 -- sk ∈ arraycopy(r1, i1, r2, i2, i3, st0)) ∧ (arraycopy(r1, i1, r2, i2, i3, st0[r2 -- (i2 + i) ', val])[r2 -- sk]) = (arraycopy(r1, i1, r2, i2, i3, st0)[r2 -- sk]) |
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 : ([CSIMPGEN : storekey generated by ', ';], [CSIMPSEQ : ⊦ r -- fs ' ∈ arraycopy (r1, i1, r2, i2, j, st) ↔ r -- fs ' ∈ st], [CSIMPSEQ : ⊦ r -- fs ' ∈ st[r0 -- i ', val0] ↔ r -- fs ' ∈ st], [CSIMPSEQ : ⊦ (arraycopy(r1, i1, r2, i2, j, st) [r -- fs ' ] ) = st[r -- fs ']], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ ¬ ¬ (r = r0 ∧ sk = sk0)], [CSIMPSEQ : ⊦ fs ' ≠ i '])]]