| ⊦ r = jvmref, (∀ class. tdname∃(str, class) → initdone(class, st[r -- sk, val])) ↔ init(str, st) |
⊦ r ≠ jvmref → (initdone(class1, st[r -- sk, val]) ↔ initdone(class1, st))
⊦ initdone(class1, st) ↔ ¬ initerror(class1, st) ∧ ¬ initundone(class1, st)
⊦ initerror(class1, st) ↔ (jvmref -- mkfs(class1, void_type, `initstate' .field) ') × initval(error) ∈ st
⊦ initundone(class1, st) ↔ (jvmref -- mkfs(class1, void_type, `initstate' .field) ') × initval(undone) ∈ st ∨ ¬ jvmref -- mkfs(class1, void_type, `initstate' .field) ' ∈ st ∧ _uninit ∈ st
⊦ r = jvmref, (∀ class. tdname∃(str, class) → (¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∨ st[jvmref -- mkfs(class, void_type, `initstate' .field) '] ≠ initval(error)) ∧ (¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∨ st[jvmref -- mkfs(class, void_type, `initstate' .field) '] ≠ initval(undone)) ∧ (jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∨ ¬ _uninit ∈ st)) ↔ init(str, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ rk × val ∈ st ↔ ¬ ¬ (rk ∈ st ∧ st[rk] = val)])]]