| # st0 = m + 1, st1 -- (r0 -- sk) = update(r0, fis, st0 -- (r0 -- sk)), r0 -- sk ∈ st1, r0 -- sk ∈ st0, onlyModified(r0, st0, st1), r0 ∈ st1, r0 ∈ st0, validFields(r0, fis, st0 -- (r0 -- sk)) ⊦ st0[r0 -- sk] = st1[r0 -- sk], st0 = ∅, st1 = update(r0, (sk × st1[r0 -- sk]) ' + fis, st0) ∧ validFields(r0, (sk × st1[r0 -- sk]) ' + fis, st0) |
⊦ update(r, (sk × val) ' + fis, st) = (update(r, fis, st)[r -- sk, val])
# st0 = m + 1, st1 -- (r0 -- sk) = update(r0, fis, st0 -- (r0 -- sk)), r0 -- sk ∈ st1, r0 -- sk ∈ st0, onlyModified(r0, st0, st1), r0 ∈ st1, r0 ∈ st0, validFields(r0, fis, st0 -- (r0 -- sk)) ⊦ st0[r0 -- sk] = st1[r0 -- sk], st0 = ∅, st1 = (update(r0, fis, st0)[r0 -- sk, st1[r0 -- sk]]) ∧ validFields(r0, (sk × st1[r0 -- sk]) ' + fis, st0)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (fis + fis0) + fis1 = fis + fis0 + fis1])]]