| class1 ≠ class2 ⊦ initerror(class1, st[jvmref -- mkfs(class2, ty, fieldvar) ', val]) ↔ initerror(class1, st) |
sk ≠ mkfs(class1, void_type, `initstate' .field) ' ⊦ initerror(class1, st[jvmref -- sk, val]) ↔ initerror(class1, st)
⊦ initerror(class1, st) ↔ (jvmref -- mkfs(class1, void_type, `initstate' .field) ') × initval(error) ∈ st
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ mkfs(class, ty, fieldvar) = mkfs(class0, ty0, fieldvar0) ↔ class = class0 ∧ ty = ty0 ∧ fieldvar = fieldvar0], [CSIMPSEQ : ⊦ rk × val ∈ st ↔ rk ∈ st ∧ st[rk] = val], [CSIMPSEQ : ⊦ fs ' = fs0 ' ↔ fs = fs0], [CSIMPSEQ : ⊦ mkfs(class1, ty, fieldvar) = mkfs(class2, ty0, fieldvar0) ↔ ¬ ¬ ( class1 = class2 ∧ ty = ty0 ∧ fieldvar = fieldvar0)])]]