| m < # avols[v], ebm-cons(avols), is-aligned(n, EB_PAGE_SIZE), is-aligned(m0, EB_PAGE_SIZE), v ∈ avols, n + n0 ≤ # buf, m0 + n ≤ LEB_SIZE, avols[v][m].mapped? → m0 ≥ avols[v][m].fill ⊦ ⟪ebm_write#(v, m, m0, n0, n, buf; avols; err)⟫ ebm-cons(avols) |
m < # avols[v], ebm-cons(avols), is-aligned(n, EB_PAGE_SIZE), is-aligned(m0, EB_PAGE_SIZE), v ∈ avols, n + n0 ≤ # buf, m0 + n ≤ LEB_SIZE, avols[v][m].mapped? → avols[v][m].fill ≤ m0 ⊦ ⟪ebm_write#(v, m, m0, n0, n, buf; avols; err)⟫ ebm-cons(avols)
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ n ≥ m ↔ m ≤ n; (s)