| ∀ sk, r0, r, i, st, val. is_fskey(sk) ∨ r0 ≠ r → putArray(vals0, r, i, st[r0 -- sk, val]) = (putArray(vals0, r, i, st)[r0 -- sk, val]), is_fskey(sk) ∨ r0 ≠ r ⊦ putArray(val0 + vals0, r, i, st[r0 -- sk, val]) = (putArray(val0 + vals0, r, i, st)[r0 -- sk, val]) |
⊦ putArray(val ' + vals, r, i, st) = (putArray(vals, r, i + 1, st)[r -- i ', val])
is_fskey(sk) ∨ r0 ≠ r, ∀ sk0, r1, r2, i0, st0, val1. ¬ is_indexkey(sk0) ∨ r1 ≠ r2 → putArray(vals0, r2, i0, st0[r1 -- sk0, val1]) = (putArray(vals0, r2, i0, st0)[r1 -- sk0, val1]) ⊦ (putArray(vals0, r, i + 1, st[r0 -- sk, val])[r -- i ', val0]) = (putArray(vals0, r, i + 1, st)[r -- i ', val0][r0 -- sk, val])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ is_fskey(sk) ↔ is_indexkey(sk)], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPSEQ : ⊦ val + vals = val ' + vals])]]