| tdname∃(str, class0), mkfs(class0, ty, fieldvar) ' ∈ fis .keys, initdone(class0, addclass(class0, fis, st)), ∀ sk, val. sk × val ∈ fis → is_fskey(sk) ∧ type∃(str, sk .fs .type) ∧ validval(str, val, sk .fs .type, st) ⊦ class0 = `java.lang.Object' .class, ty = void_type, mkfs(class0, ty, fieldvar) ' ∈ fis, jvmref -- mkfs(class0, ty, fieldvar) ' ∈ addclass(class0, fis, st) ∧ okval(st[jvmref -- mkfs(class0, ty, fieldvar) '], ty) ∧ type∃(str, ty) ∧ (is_reftype(ty) → validrefval(str, st[jvmref -- mkfs(class0, ty, fieldvar) '], ty, addclass(class0, fis, st))) |
⊦ sk ∈ fis .keys ↔ sk ∈ fis
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (fis, mkfs(class0, ty, fieldvar) ')]]