| jvmref -- mkfs(class0, void_type, `initstate' .field) ' ∈ 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 -- mkfs(class0, void_type, `initstate' .field) '] ≠ initval(undone) ∧ st[jvmref -- mkfs(class0, void_type, `initstate' .field) '] ≠ initval(error) |
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ ¬ ¬ (r = r0 ∧ sk = sk0)], [CSIMPSEQ : ⊦ fs ' = fs0 ' ↔ fs = fs0], [CSIMPSEQ : ⊦ mkfs(class1, ty, fieldvar) = mkfs(class2, ty0, fieldvar0) ↔ ¬ ¬ ( class1 = class2 ∧ ty = ty0 ∧ fieldvar = fieldvar0)], [CSIMPSEQ : ⊦ (r -- sk) .ref = r], [CSIMPSEQ : ⊦ (r -- sk) .key = sk], [CSIMPSEQ : ⊦ ¬ is_indexkey(fs ')], [CSIMPSEQ : ⊦ fs ' .fs = fs], [CSIMPSEQ : ⊦ mkfs(class, ty, fieldvar) .type = ty], [CSIMPSEQ : ⊦ mkfs(class, ty, fieldvar) .field = fieldvar], [CSIMPSEQ : ⊦ stringvar .field = stringvar0 .field ↔ stringvar = stringvar0])], [EXTRATERMS : ( jvmref -- mkfs(class0, void_type, `initstate' .field) ')]]