| st[r -- fs '] .refval = jvmref, is_reftype(fs .type), fs ' ∈ instfields(st[r -- _type] .type .class), is_obj(str, r, st), is_referencevalue(st[r -- fs ']), validrefs(str, refs + r ', ty, st) ⊦ validrefs(str, refs + r ' + jvmref ', ty, st) |
fs = mkfs(class, ty0, fieldvar), st[r -- fs '] .refval = jvmref, is_reftype(ty0), fs ' ∈ instfields(st[r -- _type] .type .class), is_obj(str, r, st), is_referencevalue(st[r -- fs ']), validrefs(str, refs + r ', ty, st) ⊦ validrefs(str, refs + r ' + jvmref ', ty, st)
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ class = fs .class ∧ ty = fs .type ∧ fieldvar = fs .field ↔ fs = mkfs(class, ty, fieldvar)])], [EXTRATERMS : (fs, class, ty0, fieldvar)]]