| avols[v, fill(mkabstractvolume(n), erased)][v0][m].mapped?, m < # avols[v, fill(mkabstractvolume(n), erased)][v0], ebm-cons(avols), v0 ∈ avols[v, fill(mkabstractvolume(n), erased)] ⊦ v ∈ avols, # avols[v, fill(mkabstractvolume(n), erased)][v0][m].data = LEB_SIZE ∧ avols[v, fill(mkabstractvolume(n), erased)][v0][m].fill ≤ LEB_SIZE ∧ is-aligned(avols[v, fill(mkabstractvolume(n), erased)][v0][m].fill, EB_PAGE_SIZE) ∧ range= (avols[v, fill(mkabstractvolume(n), erased)][v0][m].data, avols[v, fill(mkabstractvolume(n), erased)][v0][m].fill, emptyleb, 0, LEB_SIZE - avols[v, fill(mkabstractvolume(n), erased)][v0][m].fill) |
avols[v, fill(mkabstractvolume(n), erased)][v0][m] = mapped(buf, m0), avols[v, fill(mkabstractvolume(n), erased)][v0][m].mapped?, m < # avols[v, fill(mkabstractvolume(n), erased)][v0], ebm-cons(avols), v0 ∈ avols[v, fill(mkabstractvolume(n), erased)] ⊦ v ∈ avols, # 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: avols[v, fill(mkabstractvolume(n), erased)][v0][m], buf, m0