| ⊦ 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) ∧ (∀ 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 ∧ st[r -- sk] = st0[r -- sk] |
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]
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ r -- sk ∈ st → r ∈ st])]]