| r0 -- sk ∈ st1, r0 -- sk ∈ st0, onlyModified(r, st0, st1), ∀ st1, r, st. # st < # st0 → (onlyModified(r, st, st1) → (∃ fis. st1 = update(r, fis, st) ∧ validFields(r, fis, st))) ⊦ st0[r0 -- sk] = st1[r0 -- sk], ∃ fis. st1 = update(r, fis, st0) ∧ validFields(r, fis, st0) |
r0 -- sk ∈ st1, r0 -- sk ∈ st0, onlyModified(r, st0, st1), r0 ∈ st1, r0 ∈ st0, ∀ st, r1, st2. ¬ # st0 ≤ # st2 → (onlyModified(r1, st2, st) → (∃ fis. st = update(r1, fis, st2) ∧ validFields(r1, fis, st2))) ⊦ st0[r0 -- sk] = st1[r0 -- sk], ∃ fis. st1 = update(r, fis, st0) ∧ validFields(r, fis, st0)
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ r -- sk ∈ st → r ∈ st], [CSIMPSEQ : ⊦ ¬ m < n ↔ n ≤ m])]]