| jvmref -- mkfs(class, ty, fieldvar) ' ∈ rkvs, validvals(str, rkvs, st), mkfs(class, ty, fieldvar) ' ∈ statfields(class), tdname∃(str, class), initdone(class, st), jvmref -- mkfs(class, ty, fieldvar) ' ∈ st, okval(st[jvmref -- mkfs(class, ty, fieldvar) '], ty), type∃(str, ty), jvmref ∈ st, is_reftype(ty) → validrefval(str, st[jvmref -- mkfs(class, ty, fieldvar) '], ty, st) ⊦ ty = void_type, (is_reftype(ty) → validrefval(str, st[rkvs][jvmref -- mkfs(class, ty, fieldvar) '], ty, st[rkvs])) ∧ okval(st[rkvs][jvmref -- mkfs(class, ty, fieldvar) '], ty) |
⊦ rk ∈ rkvs ↔ (∃ rkvs0, val, rkvs1. rkvs = rkvs0 + ((rk × val) + rkvs1) ∧ ¬ rk ∈ rkvs1)
∃ rkvs0, val, rkvs1. rkvs = rkvs0 + (((jvmref -- mkfs(class, ty, fieldvar) ') × val) + rkvs1) ∧ ¬ jvmref -- mkfs(class, ty, fieldvar) ' ∈ rkvs1, validvals(str, rkvs, st), mkfs(class, ty, fieldvar) ' ∈ statfields(class), tdname∃(str, class), initdone(class, st), jvmref -- mkfs(class, ty, fieldvar) ' ∈ st, okval(st[jvmref -- mkfs(class, ty, fieldvar) '], ty), type∃(str, ty), jvmref ∈ st, is_reftype(ty) → validrefval(str, st[jvmref -- mkfs(class, ty, fieldvar) '], ty, st) ⊦ ty = void_type, (is_reftype(ty) → validrefval(str, st[rkvs][jvmref -- mkfs(class, ty, fieldvar) '], ty, st[rkvs])) ∧ okval(st[rkvs][jvmref -- mkfs(class, ty, fieldvar) '], ty)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (rkvs, jvmref -- mkfs(class, ty, fieldvar) ')]]