| sk .fs = mkfs(class, ty, fieldvar), is_indexkey(sk) ∨ ty ≠ void_type ∨ fieldvar ≠ `initstate' .field ∧ sk .fs ≠ mkfs(`java.lang.Object' .class, void_type, `uninit' .field) ⊦ validstatfields(str, sks, st[jvmref -- sk, val]) ↔ validstatfields(str, sks, st), sk ∈ sks |
⊦ validstatfields(str, [], st)
∀ sk, class, ty, fieldvar, str, st, val. sk .fs = mkfs(class, ty, fieldvar) ∧ (is_indexkey(sk) ∨ ty ≠ void_type ∨ fieldvar ≠ `initstate' .field ∧ sk .fs ≠ mkfs(`java.lang.Object' .class, void_type, `uninit' .field)) → (validstatfields(str, sks0, st[jvmref -- sk, val]) ↔ validstatfields(str, sks0, st)) ∨ sk ∈ sks0, sk .fs = mkfs(class, ty, fieldvar), is_indexkey(sk) ∨ ty ≠ void_type ∨ fieldvar ≠ `initstate' .field ∧ sk .fs ≠ mkfs(`java.lang.Object' .class, void_type, `uninit' .field) ⊦ validstatfields(str, sk0 + sks0, st[jvmref -- sk, val]) ↔ validstatfields(str, sk0 + sks0, st), sk ∈ sk0 + sks0
[[CONCRETESIMPRULES : ([CSIMPGEN : storekeys generated by [], +;])]]