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