| is_fskey(sk) ⊦ r = r0, ( r1 -- sk ∈ addobj(r0, class, fis, st) ∨ r1 = r ∧ is_indexkey(sk) ∧ i ≤ sk .index ∧ sk .index < i + n→i(# bytes) ↔ r1 -- sk ∈ addobj(r0, class, fis, putByteArray(bytes, r, i, st))) ∧ (addobj(r0, class, fis, st)[r1 -- sk]) = (addobj(r0, class, fis, putByteArray(bytes, r, i, st))[r1 -- sk]) |
⊦ is_fskey(sk) ↔ (∃ fs. sk = fs ')
∃ fs. sk = fs ' ⊦ r = r0, ( r1 -- sk ∈ addobj(r0, class, fis, st) ∨ r1 = r ∧ is_indexkey(sk) ∧ i ≤ sk .index ∧ sk .index < i + n→i(# bytes) ↔ r1 -- sk ∈ addobj(r0, class, fis, putByteArray(bytes, r, i, st))) ∧ (addobj(r0, class, fis, st)[r1 -- sk]) = (addobj(r0, class, fis, putByteArray(bytes, r, i, st))[r1 -- sk])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (sk)]]