| newref(r, st), rk ∈ st, rk ∈ putArray(vals0, r, i, addarray(r, ty, vals, st)) ⊦ st[rk] = (putArray(vals0, r, i, addarray(r, ty, vals, st))[rk]), r = jvmref |
⊦ rk ∈ st ∧ st ⊆ st1 → st1[rk] = st[rk]
⊦ rk ∈ st → rk ∈ addarray(r, ty, vals, st)
rk ∈ putArray(vals0, r, i, addarray(r, ty, vals, st)) ∧ putArray(vals0, r, i, addarray(r, ty, vals, st)) ⊆ putArray(vals0, r, i, addarray(r, ty, vals, st)), newref(r, st), rk ∈ st, rk ∈ putArray(vals0, r, i, addarray(r, ty, vals, st)) ⊦ st[rk] = (putArray(vals0, r, i, addarray(r, ty, vals, st))[rk]), r = jvmref
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ rk ∈ putArray(vals, r, i, st) ↔ rk ∈ st ∨ rk .ref = r ∧ is_indexkey(rk .key) ∧ i ≤ rk .key .index ∧ rk .key .index < i + n→i(# vals)], [CSIMPSEQ : ⊦ st ⊆ st])], [EXTRATERMS : (rk, putArray(vals0, r, i, addarray(r, ty, vals, st)), putArray(vals0, r, i, addarray(r, ty, vals, st)))]]