| sk .fs = mkfs(class, ty, fieldvar), validstatfield(str, sk, st[jvmref -- sk, val]), validstatfields(str, sks, st), is_fskey(sk), fieldvar ≠ `initstate' .field ∧ sk .fs ≠ mkfs(`java.lang.Object' .class, void_type, `uninit' .field) ∨ ty ≠ void_type ⊦ ∀ sk0. sk0 ∈ sks → validstatfield(str, sk0, st[jvmref -- sk, val]) |
sk .fs = mkfs(class, ty, fieldvar), is_fskey(sk), validstatfields(str, sks, st), validstatfield(str, sk, st[jvmref -- sk, val]), sk0 ∈ sks, fieldvar ≠ `initstate' .field ∧ (class ≠ `java.lang.Object' .class ∨ fieldvar ≠ `uninit' .field) ∨ ty ≠ void_type ⊦ validstatfield(str, sk0, st[jvmref -- sk, val])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ mkfs(class1, ty, fieldvar) = mkfs(class2, ty0, fieldvar0) ↔ ¬ ¬ ( class1 = class2 ∧ ty = ty0 ∧ fieldvar = fieldvar0)])]]