| (∅)[default-volid, fill(mkabstractvolume(n), erased)][v][m].mapped?, m < # (∅)[default-volid, fill(mkabstractvolume(n), erased)][v], v ∈ (∅)[default-volid, fill(mkabstractvolume(n), erased)] ⊦ # (∅)[default-volid, fill(mkabstractvolume(n), erased)][v][m].data = LEB_SIZE ∧ (∅)[default-volid, fill(mkabstractvolume(n), erased)][v][m].fill ≤ LEB_SIZE ∧ is-aligned((∅)[default-volid, fill(mkabstractvolume(n), erased)][v][m].fill, EB_PAGE_SIZE) ∧ range= ((∅)[default-volid, fill(mkabstractvolume(n), erased)][v][m].data, (∅)[default-volid, fill(mkabstractvolume(n), erased)][v][m].fill, emptyleb, 0, LEB_SIZE - (∅)[default-volid, fill(mkabstractvolume(n), erased)][v][m].fill) |
(∅)[default-volid, fill(mkabstractvolume(n), erased)][v][m] = mapped(buf, m0), (∅)[default-volid, fill(mkabstractvolume(n), erased)][v][m].mapped?, m < # (∅)[default-volid, fill(mkabstractvolume(n), erased)][v], v ∈ (∅)[default-volid, fill(mkabstractvolume(n), erased)] ⊦ # buf = LEB_SIZE ∧ m0 ≤ LEB_SIZE ∧ is-aligned(m0, EB_PAGE_SIZE) ∧ range=(buf, m0, emptyleb, 0, LEB_SIZE - m0)
Used simplifier rules: ⊦ leb.mapped? → (buf = leb.data ∧ m = leb.fill ↔ leb = mapped(buf, m)); (elim) Used terms: (∅)[default-volid, fill(mkabstractvolume(n), erased)][v][m], buf, m0