| ∀ j0. 0 ≤ j0 ∧ j0 < i3 → st0[r1 -- (i1 + j0) '] = st0[r2 -- (i2 + j0) '], r2 ∈ st0, 0 ≤ i2, 0 ≤ i3, okarray(r2, ty, st0), i2 + i3 ≤ st0[r2 -- _length] .intval ⊦ r2 = jvmref, (r2 -- i ' ∈ arraycopy(r1, i1, r2, i2, i3, st0) ↔ r2 -- i ' ∈ st0) ∧ (arraycopy(r1, i1, r2, i2, i3, st0)[r2 -- i ']) = st0[r2 -- i '] |
r2 ∈ st0, 0 ≤ i2, 0 ≤ i3, okarray(r2, ty, st0), i2 + i3 ≤ st0[r2 -- _length] .intval, ∀ j. ¬ j < 0 ∧ ¬ i3 ≤ j → st0[r1 -- (i1 + j) '] = st0[r2 -- (i2 + j) '] ⊦ r2 = jvmref, (r2 -- i ' ∈ arraycopy(r1, i1, r2, i2, i3, st0) ↔ r2 -- i ' ∈ st0) ∧ (arraycopy(r1, i1, r2, i2, i3, st0)[r2 -- i ']) = st0[r2 -- i ']
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i])]]