| ∀ r, sk, val, st. update(r, fis0[sk, val], st) = (update(r, fis0, st)[r -- sk, val]) ⊦ update(r, ((sk0 × val0) ' + fis0)[sk, val], st) = (update(r, fis0, st)[r -- sk0, val0][r -- sk, val]) |
⊦ sk ≠ sk0 → ((sk0 × val) ' + fis)[sk, val0] = (sk0 × val) ' + fis[sk, val0]
⊦ update(r, (sk × val) ' + fis, st) = (update(r, fis, st)[r -- sk, val])
sk ≠ sk0, ∀ r, sk, val, st. update(r, fis0[sk, val], st) = (update(r, fis0, st)[r -- sk, val]) ⊦ update(r, (sk0 × val0) ' + fis0[sk, val], st) = (update(r, fis0, st)[r -- sk0, val0][r -- sk, val])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ((sk × val) ' + fis)[sk, val0] = (sk × val0) ' + fis], [CSIMPSEQ : ⊦ (fis + fis0) + fis1 = fis + fis0 + fis1], [CSIMPSEQ : ⊦ (st[rk, val][rk, val0]) = st[rk, val0]])], [EXTRATERMS : (val, sk, fis0, val0, sk0)]]