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