| # lpt = # avol, awbuf-inv(avol, bleb), synced(avol0), avol0 ↓ avol, bleb ≠ buffered(m3) → bleb ≠ nobuffer → avol[bleb.leb].mapped? ∧ bleb.leb < # avol ∧ bleb.isbuf?, bleb = buffered(m3) ∨ (bleb = nobuffer ∨ is-aligned(# avol[bleb.leb].data, EB_PAGE_SIZE)) ∧ m3 < # avol ∧ avol[m3].mapped? ∧ m0 = # avol[m3].data ⊦ (⌊ESUCCESS⌋ ∨ ESUCCESS = ESUCCESS) ∧ ⟨err := ESUCCESS; if err = ESUCCESS then bleb := buffered(m3)⟩ true |
# lpt = # avol, awbuf-inv(avol, bleb), synced(avol0), avol0 ↓ avol, bleb ≠ buffered(m3) → bleb ≠ nobuffer → avol[bleb.leb].mapped? ∧ bleb.leb < # avol ∧ bleb.isbuf?, bleb = buffered(m3) ∨ (bleb = nobuffer ∨ is-aligned(# avol[bleb.leb].data, EB_PAGE_SIZE)) ∧ m3 < # avol ∧ avol[m3].mapped? ∧ m0 = # avol[m3].data ⊦ ⟨err := ESUCCESS; if err = ESUCCESS then bleb := buffered(m3)⟩ true
Used simplifier rules: ⊦ ¬ ⌊ESUCCESS⌋ ; (s)