| is-aligned(# buf, EB_PAGE_SIZE) ⊦ aleb ↓ mapped(buf) ↔ aleb = mapped(buf) |
Used simplifier rules: down-arrow-block-def: ⊦ aleb1 ↓ aleb0 ↔ (aleb0.mapped? → aleb1 = mapped(aleb0.data.align↓)) ∧ ( ¬ aleb0.mapped? ∧ aleb1.mapped? → # aleb1.data ≤ LEB_SIZE ∧ is-aligned(# aleb1.data, EB_PAGE_SIZE));%down-arrow-buf: ⊦ buf.align↓ = subarray(buf, 0, align↓(# buf, EB_PAGE_SIZE));%mapped-down-mapped: ⊦ mapped(buf0) ↓ mapped(buf1) ↔ buf0 = buf1.align↓;%# buf = n ⊦ subarray(buf, 0, n) = buf; (s)%m ≠ 0 ⊦ is-aligned(n, m) → align↓(n, m) = n; (s)% ⊦ EB_PAGE_SIZE ≠ 0; (s)% ⊦ mapped(buf).data = buf; (s)% ⊦ mapped(buf).mapped?; (s)