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