| newref(r, st), newref(r, st0) ⊦ r = jvmref, r = r0, (st ∪ st0)[r0 -- sk] = (st ∪ addarray(r, ty, vals, st0))[r0 -- sk] |
⊦ ¬ rk ∈ st0 → (st ∪ st0)[rk] = st[rk]
⊦ r ≠ r0 → (addarray(r, ty, vals, st)[r0 -- sk]) = st[r0 -- sk]
⊦ r ≠ r0 → (r -- sk ∈ addarray(r0, ty, vals, st) ↔ r -- sk ∈ st)
⊦ r ≠ r0 → (r -- sk ∈ addarray(r0, ty, vals, st) ↔ r -- sk ∈ st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ rk ∈ st0 → (st ∪ st0)[rk] = st0[rk]], [CSIMPSEQ : ⊦ ¬ rk ∈ st0 → (st ∪ st0)[rk] = st[rk]])], [EXTRATERMS : (r0 -- sk, addarray(r, ty, vals, st0), st)]]