| avols[v, fill(mkabstractvolume(n), erased)][v0][m] = mapped(buf, m0), 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) |
avols[v, fill(mkabstractvolume(n), erased)][v0][m] = mapped(buf, m0), m < # avols[v, fill(mkabstractvolume(n), erased)][v0], ebm-cons(avols), v0 ∈ avols[v, fill(mkabstractvolume(n), erased)] ⊦ v0 = v, 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: ⊦ avols[v, evol][v] = evol; (s)% ⊦ v ∈ avols[v0, evol] ↔ v = v0 ∨ v ∈ avols; (ws)% ⊦ # fill(evol, leb) = # evol; (s)% ⊦ # mkabstractvolume(n) = n; (s)% ⊦ m < n → fill(mkabstractvolume(n), leb)[m] = leb; (s)% ⊦ erased ≠ mapped(buf, m); (s) Used formulas: v0 = v