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