| 0 ≤ j ⊦ r = r0, (arraycopy(r, i, r0, i0, j, st)[r0 -- (i0 + j) ', st[r -- (i + j) ']]) = arraycopy(r, i, r0, i0, j, st[r0 -- (i0 + j) ', st[r -- (i + j) ']]) |
⊦ st1 = st2 ↔ (∀ rk. (rk ∈ st1 ↔ rk ∈ st2) ∧ st1[rk] = st2[rk])
0 ≤ j ⊦ r = r0, ∀ rk. ( rk ∈ (arraycopy(r, i, r0, i0, j, st)[r0 -- (i0 + j) ', st[r -- (i + j) ']]) ↔ rk ∈ arraycopy(r, i, r0, i0, j, st[r0 -- (i0 + j) ', st[r -- (i + j) ']])) ∧ (arraycopy(r, i, r0, i0, j, st)[r0 -- (i0 + j) ', st[r -- (i + j) ']][rk]) = (arraycopy(r, i, r0, i0, j, st[r0 -- (i0 + j) ', st[r -- (i + j) ']])[rk])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (arraycopy (r, i, r0, i0, j, st[r0 -- (i0 + j) ', st[r -- (i + j) ']]), arraycopy(r, i, r0, i0, j, st) [r0 -- (i0 + j) ', st[r -- (i + j) '] ])]]