| validref(str, r, ty, st), is_reftype(ty0), r ≠ r0 ∨ _type ≠ mkfs(class, ty0, fieldvar) ' ⊦ r = jvmref, (st[r0 -- mkfs(class, ty0, fieldvar) ', refval(jvmref)][r -- _type]) .type ≤ ty ∧ ¬ junkref(str, r, st[r0 -- mkfs(class, ty0, fieldvar) ', refval(jvmref)]) |
⊦ rk ≠ rk0 → (st[rk0, val][rk]) = st[rk]
r -- _type ≠ r0 -- mkfs(class, ty0, fieldvar) ', validref(str, r, ty, st), is_reftype(ty0), r ≠ r0 ∨ _type ≠ mkfs(class, ty0, fieldvar) ' ⊦ r = jvmref, st[r -- _type] .type ≤ ty ∧ ¬ junkref(str, r, st[r0 -- mkfs(class, ty0, fieldvar) ', refval(jvmref)])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ r = r0 ∧ sk = sk0])], [EXTRATERMS : (r -- _type, refval(jvmref), r0 -- mkfs(class, ty0, fieldvar) ', st)]]