| rk = r0 -- sk, sk .fs .field = `initstate' .field, sk .fs .type = void_type, r0 = jvmref, is_fskey(sk), rk ∈ st, ∀ rk. (rk = r -- mkfs(class, ty, fieldvar) ' ∨ rk ∈ st) ∧ rk .ref = jvmref ∧ ¬ is_indexkey(rk .key) ∧ rk .key .fs .type = void_type ∧ rk .key .fs .field = `initstate' .field → ((rk = r -- mkfs(class, ty, fieldvar) ' ⊃ val; st[rk])) ≠ initval(undone) ∧ ((rk = r -- mkfs(class, ty, fieldvar) ' ⊃ val; st[rk])) ≠ initval(error) ⊦ _uninit = r -- mkfs(class, ty, fieldvar) ', ty = void_type, _uninit ∈ st, st[rk] ≠ initval(undone) ∧ st[rk] ≠ initval(error) |
⊦ r -- sk ∈ st → r ∈ st
sk .fs .field = `initstate' .field, sk .fs .type = void_type, is_fskey(sk), jvmref -- sk ∈ st, jvmref ∈ st, ∀ rk. (rk = r -- mkfs(class, ty, fieldvar) ' ∨ rk ∈ st) ∧ rk .ref = jvmref ∧ ¬ is_indexkey(rk .key) ∧ rk .key .fs .type = void_type ∧ rk .key .fs .field = `initstate' .field → ((rk = r -- mkfs(class, ty, fieldvar) ' ⊃ val; st[rk])) ≠ initval(undone) ∧ ((rk = r -- mkfs(class, ty, fieldvar) ' ⊃ val; st[rk])) ≠ initval(error) ⊦ _uninit = r -- mkfs(class, ty, fieldvar) ', ty = void_type, _uninit ∈ st, st[jvmref -- sk] ≠ initval(undone) ∧ st[jvmref -- sk] ≠ initval(error)
[[CONCRETESIMPRULES : ()]]