| ⊦ sk ≠ sk0 ∧ ( ¬ is_fskey(sk0) ∨ sk0 .fs .type ≠ void_type ∨ sk0 .fs .field ≠ `initstate' .field ∧ sk0 .fs ≠ mkfs(`java.lang.Object' .class, void_type, `uninit' .field)) → (validstatfields(str, sk ' + sks, st[jvmref -- sk0, val]) ↔ validstatfield(str, sk, st) ∧ validstatfields(str, sks, st[jvmref -- sk0, val])) |
⊦ validstatfields(str, sk ' + sks, st) ↔ validstatfield(str, sk, st) ∧ validstatfields(str, sks, st)
validstatfields(str, sks, st[jvmref -- sk0, val]), is_indexkey(sk0) ∨ sk0 .fs .type ≠ void_type ∨ sk0 .fs .field ≠ `initstate' .field ∧ sk0 .fs ≠ mkfs(`java.lang.Object' .class, void_type, `uninit' .field) ⊦ sk = sk0, validstatfield(str, sk, st[jvmref -- sk0, val]) ↔ validstatfield(str, sk, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ is_fskey(sk) ↔ is_indexkey(sk)], [CSIMPSEQ : ⊦ (sks + sks0) + sks1 = sks + sks0 + sks1])]]