| st0[r -- _type] .type = mkclasstype(class0), mkfs(class1, ty, fieldvar) ' ∈ instfields(class), class0 ≤ class ⊦ r = jvmref, st[r -- mkfs(class1, ty, fieldvar) '] = noval, junkref(str, r, st0), r -- mkfs(class1, ty, fieldvar) ' ∈ st0, (is_reftype(ty) ∨ ty = abstract_type) ∧ noval .refval ≠ jvmref |
⊦ r ≠ jvmref ∧ ¬ is_valid_ref(str, r, st) → junkref(str, r, st)
¬ (r ≠ jvmref ∧ ¬ is_valid_ref(str, r, st0)), st0[r -- _type] .type = mkclasstype(class0), mkfs(class1, ty, fieldvar) ' ∈ instfields(class), class0 ≤ class ⊦ r = jvmref, st[r -- mkfs(class1, ty, fieldvar) '] = noval, junkref(str, r, st0), r -- mkfs(class1, ty, fieldvar) ' ∈ st0, (is_reftype(ty) ∨ ty = abstract_type) ∧ noval .refval ≠ jvmref
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st0, r, str)]]