| # avol0 = # avol1, # lpt0 = # avol1, # buf2 = EB_PAGE_SIZE, avol1[m2] = mapped(buf1), avol0[m] = mapped(buf), bleb = buffered(m), m4 < EB_PAGE_SIZE, m0 + n < # avol0[m2].data, LEB_SIZE < # avol0[m2].data, m2 < # avol1, m < # avol1, abs(avol1, bleb, mkwbuf(buf2, m6, m4), avol0, rofs), awbuf-inv(avol1, bleb), ebm-vol-inv(avol0), is-aligned(m6, EB_PAGE_SIZE), m0 + n ≤ # avol0[m2].data + (LEB_SIZE - # avol0[m2].data), n ≤ # buf3, m0 + n ≤ LEB_SIZE, ¬ rofs → # buf = m6, rofs → m6 ≤ # buf ⊦ bleb = nobuffer |
# avol0 = # avol1, # lpt0 = # avol1, # buf2 = EB_PAGE_SIZE, avol1[m2] = mapped(buf1), avol0[m] = mapped(buf), m4 < EB_PAGE_SIZE, m0 + n < # avol0[m2].data, LEB_SIZE < # avol0[m2].data, m2 < # avol1, m < # avol1, abs(avol1, buffered(m), mkwbuf(buf2, m6, m4), avol0, rofs), awbuf-inv(avol1, buffered(m)), ebm-vol-inv(avol0), is-aligned(m6, EB_PAGE_SIZE), m0 + n ≤ # avol0[m2].data + (LEB_SIZE - # avol0[m2].data), n ≤ # buf3, m0 + n ≤ LEB_SIZE, ¬ rofs → # buf = m6, rofs → m6 ≤ # buf ⊦
Used simplifier rules: inv-buf-in-vol: ⊦ awbuf-inv(avol, buffered(n)) → n < # avol; (forward) from specification awbuf-inv%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic% ⊦ nobuffer ≠ buffered(m); (s)