| ¬ i0 < i2, 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 ']), ¬ i0 < i2 ∧ ¬ i2 + i3 ≤ i0 |
r2 ∈ st0, 0 < i3, 0 ≤ i, 0 ≤ i2, exactarray(r2, int_type, st0), i < i3, i2 + i3 ≤ st0[r2 -- _length] .intval, i2 ≤ i0, i2 + i3 ≤ i0, 0 ≤ i0 ⊦ r2 = jvmref, r1 = r2, ((i0 = i2 + i ⊃ val; st0[r2 -- i0 '])) = st0[r2 -- i0 ']
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ ¬ ¬ (r = r0 ∧ sk = sk0)], [CSIMPSEQ : sk ≠ sk0 ⊦ r -- sk ∈ st[r -- sk0, val] ↔ r -- sk ∈ st], [CSIMPSEQ : ⊦ i ' = i0 ' ↔ i = i0], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))], [CSIMPSEQ : ⊦ i0 + j ≤ j0 → (arraycopy(r, i, r0, i0, j, st) [r0 -- j0 ' ] ) = st[r0 -- j0 ']], [CSIMPSEQ : ⊦ i + j ≤ i0 + j ↔ i ≤ i0], [CSIMPSEQ : ⊦ i < j → (¬ ¬ j ≤ i ↔ false)], [CSIMPSEQ : ⊦ i0 + j ≤ j0 → ( r0 -- j0 ' ∈ arraycopy (r, i, r0, i0, j, st) ↔ r0 -- j0 ' ∈ st)], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i])]]