| st[r -- _type] .type = mkclasstype(class0), mkfs(class, mkclasstype(class1), fieldvar) ' ∈ instfields(class0), is_valid_ref(str, r, st), class0 ≤ class1 ⊦ r = jvmref, ∃ refs. dups(refs) ∧ refs .first = r ∧ validrefs(str, refs, st[refs .first -- _type] .type, st[refs .first -- mkfs(class, mkclasstype(class1), fieldvar) ', refval(refs .first)]) |
st[r -- _type] .type = mkclasstype(class0), mkfs(class, mkclasstype(class1), fieldvar) ' ∈ instfields(class0), is_valid_ref(str, r, st), class0 ≤ class1 ⊦ r = jvmref, dups(r ' + r ') ∧ (r ' + r ') .first = r ∧ validrefs (str, r ' + r ', st[(r ' + r ') .first -- _type] .type, st[(r ' + r ') .first -- mkfs(class, mkclasstype(class1), fieldvar) ', refval((r ' + r ') .first)])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (r ' + r ')]]