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