| ¬ rk .ref ≠ r1, st[rk] = refval(r), newref(r1, st), rk ∈ st, validrefnotnull(str, r, ty1, st) ⊦ r1 = jvmref, is_referencevalue(addarray(r1, ty, vals, st)[rk]) ∧ validrefnotnull(str, (addarray(r1, ty, vals, st)[rk]) .refval, ty1, addarray(r1, ty, vals, st)) |
st[rk] = refval(r), newref(rk .ref, st), rk ∈ st, validrefnotnull(str, r, ty1, st) ⊦ rk .ref = jvmref, is_referencevalue(addarray(rk .ref, ty, vals, st)[rk]) ∧ validrefnotnull(str, (addarray(rk .ref, ty, vals, st)[rk]) .refval, ty1, addarray(rk .ref, ty, vals, st))
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ newref(r, st) → r ≠ jvmref])]]