| ⊦ 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))) ∧ (putByteArray(bytes, r, i, addobj(r0, class, fis, st))[r1 -- sk]) = (addobj(r0, class, fis, putByteArray(bytes, r, i, st))[r1 -- sk]) |
⊦ is_indexkey(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))) ∧ (putByteArray(bytes, r, i, addobj(r0, class, fis, st))[r1 -- sk]) = (addobj(r0, class, fis, putByteArray(bytes, r, i, st))[r1 -- sk])
sk = i0 ' ∧ is_indexkey(sk) ⊦ r = r0, ( r1 -- sk ∈ addobj(r0, class, fis, st) ∨ r1 = r ∧ is_indexkey(sk) ∧ i ≤ i0 ∧ i0 < i + n→i(# bytes) ↔ r1 -- sk ∈ addobj(r0, class, fis, putByteArray(bytes, r, i, st))) ∧ (putByteArray(bytes, r, i, addobj(r0, class, fis, st))[r1 -- sk]) = (addobj(r0, class, fis, putByteArray(bytes, r, i, st))[r1 -- sk])
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ is_indexkey(sk) → (i = sk .index ↔ sk = i ')])], [EXTRATERMS : (sk, i0)]]