| newref(r1, st), rk ∈ st, validrefvalnotnull(str, st[rk], 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)) |
⊦ validrefvalnotnull(str, val, ty, st) ↔ is_referencevalue(val) ∧ validrefnotnull(str, val .refval, ty, st)
newref(r1, st), rk ∈ st, is_referencevalue(st[rk]) ∧ validrefnotnull(str, st[rk] .refval, 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))
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, ty1, st[rk], str)]]