| newref(r, st), newref(r, st0), st ⊆ addarray(r, ty, vals, st0), r0 -- sk ∈ st, r0 ∈ st ⊦ r = jvmref, r0 -- sk ∈ st0 ∧ st[r0 -- sk] = st0[r0 -- sk] |
⊦ st1 ⊆ st2 ↔ (∀ rk. rk ∈ st1 → rk ∈ st2 ∧ st1[rk] = st2[rk])
newref(r, st), newref(r, st0), ∀ rk. rk ∈ st → rk ∈ addarray(r, ty, vals, st0) ∧ st[rk] = (addarray(r, ty, vals, st0)[rk]), r0 -- sk ∈ st, r0 ∈ st ⊦ r = jvmref, r0 -- sk ∈ st0 ∧ st[r0 -- sk] = st0[r0 -- sk]
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (addarray(r, ty, vals, st0), st)]]