| # st0 = m + 1 ∧ # st0 ≠ 0, r0 -- sk ∈ st1, r0 -- sk ∈ st0, onlyModified(r0, st0, st1), r0 ∈ st1, r0 ∈ st0, ¬ # st0 ≤ m → st1 -- (r0 -- sk) = update(r0, fis, st0 -- (r0 -- sk)) ∧ validFields(r0, fis, st0 -- (r0 -- sk)) ⊦ st0[r0 -- sk] = st1[r0 -- sk], ∃ fis. st1 = update(r0, fis, st0) ∧ validFields(r0, fis, st0) |
# 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 = ∅, ∃ fis. st1 = update(r0, fis, st0) ∧ validFields(r0, fis, st0)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m = n + 1 → ¬ m ≤ n], [CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ # st = 0 ↔ st = ∅])]]