| st[r -- sk] = (arraycopy(r1, i, r0, i0, j, st0)[r -- sk]), newref(r0, st), r -- sk ∈ st, r -- sk ∈ arraycopy(r1, i, r0, i0, j, st0), r ∈ st, r ∈ arraycopy(r1, i, r0, i0, j, st0), ∀ rk. rk ∈ st → rk ∈ arraycopy(r1, i, r0, i0, j, st0) ∧ st[rk] = (arraycopy(r1, i, r0, i0, j, st0)[rk]) ⊦ r0 = jvmref, r -- sk ∈ st0 ∧ (arraycopy(r1, i, r0, i0, j, st0)[r -- sk]) = st0[r -- sk] |
⊦ r1 ≠ r0 → (arraycopy(r, i, r0, i0, j, st)[r1 -- sk]) = st[r1 -- sk]
⊦ r1 ≠ r0 → (r1 -- sk ∈ arraycopy(r, i, r0, i0, j, st) ↔ r1 -- sk ∈ st)
⊦ r1 ≠ r0 → (r1 ∈ arraycopy(r, i, r0, i0, j, st) ↔ r1 ∈ st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r ∈ st → ¬ newref(r, st)])], [EXTRATERMS : (sk, r, st0, j, i0, r0, i, r1)]]