| # avol0 = # avol1, # lpt0 = # avol1, # buf0 = EB_PAGE_SIZE, avol0[m5] = mapped(buf), avol0[m] = mapped(buf1), bleb = buffered(m), m < # avol1, m5 < # avol1, abs(avol1, bleb, mkwbuf(buf0, m4, m3), avol0, false), awbuf-inv(avol1, bleb), ebm-vol-inv(avol0), synced(avol1), wbuf-cons(mkwbuf(buf0, m4, m3), mapped(buf1), false) ⊦ bleb = nobuffer, bleb = buffered(m5), m3 = 0 |
# avol0 = # avol1, # lpt0 = # avol1, # buf0 = EB_PAGE_SIZE, avol0[m5] = mapped(buf), avol0[m] = mapped(buf1), m < # avol1, m5 < # avol1, abs(avol1, buffered(m), mkwbuf(buf0, m4, m3), avol0, false), awbuf-inv(avol1, buffered(m)), ebm-vol-inv(avol0), synced(avol1), wbuf-cons(mkwbuf(buf0, m4, m3), mapped(buf1), false) ⊦ m = m5, m3 = 0
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)% ⊦ buffered(m) = buffered(m0) ↔ m = m0; (s)