| st[rk] = refval(r), rk ∈ st, st ⊆ st1, rk ∈ st1, st[r -- _type] .type ≤ ty ⊦ r = jvmref, junkref(str, r, st), is_referencevalue(st1[rk]) ∧ st1[rk] .refval ≠ jvmref ∧ validref(str, st1[rk] .refval, ty, st1) |
⊦ validref(str, r, ty, st) ↔ r = jvmref ∨ st[r -- _type] .type ≤ ty ∧ ¬ junkref(str, r, st)
st[rk] = refval(r), rk ∈ st, st ⊆ st1, rk ∈ st1, st[r -- _type] .type ≤ ty ⊦ r = jvmref, junkref(str, r, st), is_referencevalue(st1[rk]) ∧ st1[rk] .refval ≠ jvmref ∧ (st1[rk] .refval = jvmref ∨ st1[st1[rk] .refval -- _type] .type ≤ ty ∧ ¬ junkref(str, st1[rk] .refval, st1))
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st1, ty, st1[rk] .refval, str)]]