| ⊦ r ≠ r1 → (goodfieldandtype(r, sk, putByteArray(bytes, r1, i, st)) ↔ goodfieldandtype(r, sk, st)) |
⊦ goodfieldandtype(r, sk, st) ↔ ¬ ¬ (is_fskey(sk) ∧ r -- sk ∈ st ∧ okval(st[r -- sk], sk .fs .type))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_indexkey(sk) → ¬ is_fskey(sk)], [CSIMPSEQ : ⊦ ¬ is_fskey(sk) ↔ is_indexkey(sk)], [CSIMPSEQ : ⊦ is_fskey(sk) → (putByteArray(bytes, r, i, st) [r0 -- sk ] ) = st[r0 -- sk]], [CSIMPSEQ : ⊦ r ≠ r0 → ( r0 -- sk ∈ putByteArray (bytes, r, j, st) ↔ r0 -- sk ∈ st)])]]