| jvmref ∈ st, is_reftype(ty), initdone(class0, st), mkfs(class0, ty, fieldvar) ' ∈ statfields(class0), tdname∃(str, class0), type∃(str, ty), jvmref -- mkfs(class0, ty, fieldvar) ' ∈ st, is_referencevalue(st[jvmref -- mkfs(class0, ty, fieldvar) ']) ⊦ ty = void_type, class0 = class, class = `java.lang.Object' .class, validrefval(str, st[jvmref -- mkfs(class0, ty, fieldvar) '], ty, addclass(class, fis, st)) ↔ validrefval(str, st[jvmref -- mkfs(class0, ty, fieldvar) '], ty, st) |
⊦ validrefval(str, val, ty, st) ↔ is_referencevalue(val) ∧ validref(str, val .refval, ty, st)
jvmref ∈ st, is_reftype(ty), initdone(class0, st), mkfs(class0, ty, fieldvar) ' ∈ statfields(class0), tdname∃(str, class0), type∃(str, ty), jvmref -- mkfs(class0, ty, fieldvar) ' ∈ st, is_referencevalue(st[jvmref -- mkfs(class0, ty, fieldvar) ']) ⊦ ty = void_type, class0 = class, class = `java.lang.Object' .class, is_referencevalue(st[jvmref -- mkfs(class0, ty, fieldvar) ']) ∧ validref(str, st[jvmref -- mkfs(class0, ty, fieldvar) '] .refval, ty, addclass(class, fis, st)) ↔ validrefval(str, st[jvmref -- mkfs(class0, ty, fieldvar) '], ty, st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (addclass(class, fis, st), ty, st[jvmref -- mkfs(class0, ty, fieldvar) '], str)]]