| validFields(r, (sk × val) ' + fis0, st0), ∀ r, st0. validFields(r, fis0, st0) → onlyModified(r, st0, update(r, fis0, st0)) ⊦ onlyModified(r, st0, update(r, fis0, st0)[r -- (sk × val) .1, (sk × val) .2]) |
⊦ validFields(r, (sk × val) ' + fis, st) ↔ validFields(r, fis, st) ∧ sk ≠ _length ∧ sk ≠ _type ∧ r -- sk ∈ st ∧ ¬ sk ∈ fis
validFields(r, fis0, st0), r -- sk ∈ st0, r ∈ st0, ∀ r, st0. validFields(r, fis0, st0) → onlyModified(r, st0, update(r, fis0, st0)) ⊦ sk = _type, sk = _length, sk ∈ fis0, onlyModified(r, st0, update(r, fis0, st0)[r -- sk, val])
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ r -- sk ∈ st → r ∈ st], [CSIMPSEQ : ⊦ (sk × val) .2 = val], [CSIMPSEQ : ⊦ (sk × val) .1 = sk], [CSIMPSEQ : ⊦ (fis + fis0) + fis1 = fis + fis0 + fis1])]]