| initerror(class, addclass(class, fis0, st)[jvmref -- mkfs(class, ty, fieldvar) ', val]), void_type ≠ ty ∨ `initstate' .field ≠ fieldvar ⊦ mkfs(class, void_type, `initstate' .field) ' ∈ fis0 |
⊦ initerror(class1, st) ↔ (jvmref -- mkfs(class1, void_type, `initstate' .field) ') × initval(error) ∈ st
¬ mkfs(class1, void_type, `initstate' .field) ' ∈ fis ⊦ (addclass(class1, fis, st)[jvmref -- mkfs(class1, void_type, `initstate' .field) ']) = initval(done)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ rk × val ∈ st ↔ rk ∈ st ∧ st[rk] = val], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ r = r0 ∧ sk = sk0], [CSIMPSEQ : ⊦ fs ' = fs0 ' ↔ fs = fs0], [CSIMPSEQ : ⊦ mkfs(class, ty, fieldvar) = mkfs(class0, ty0, fieldvar0) ↔ class = class0 ∧ ty = ty0 ∧ fieldvar = fieldvar0], [CSIMPSEQ : ⊦ initval(istate) = initval(istate0) ↔ istate = istate0], [CSIMPSEQ : ⊦ done ≠ error])], [EXTRATERMS : (addclass(class, fis0, st) [jvmref -- mkfs(class, ty, fieldvar) ', val ], class)]]