| st[rk] = (addarray(r, ty, i, st0)[rk]), newref(r, st), rk ∈ st, rk ∈ addarray(r, ty, i, st0), ∀ rk. rk ∈ st → rk ∈ addarray(r, ty, i, st0) ∧ st[rk] = (addarray(r, ty, i, st0)[rk]) ⊦ r = jvmref, rk ∈ st0 ∧ st[rk] = st0[rk] |
⊦ rk .ref ≠ r → (addarray(r, ty, i, st)[rk]) = st[rk]
¬ rk .ref ≠ r, st[rk] = (addarray(r, ty, i, st0)[rk]), newref(r, st), rk ∈ st, rk ∈ addarray(r, ty, i, st0), ∀ rk. rk ∈ st → rk ∈ addarray(r, ty, i, st0) ∧ st[rk] = (addarray(r, ty, i, st0)[rk]) ⊦ r = jvmref, rk ∈ st0 ∧ st[rk] = st0[rk]
rk .ref ≠ r, st[rk] = st0[rk], newref(r, st), rk ∈ st, rk ∈ addarray(r, ty, i, st0), ∀ rk. rk ∈ st → rk ∈ addarray(r, ty, i, st0) ∧ st[rk] = (addarray(r, ty, i, st0)[rk]) ⊦ r = jvmref, rk ∈ st0 ∧ st[rk] = st0[rk]
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (rk, st0, i, ty, r)]]