| ⟨awbuf_write_buf#(n, buf, adr, m, nx, lpt, ns, bleb; avol, isbuf; err)⟩ (adr0 = adr ∧ m0 = m ∧ nx0 = nx ∧ lpt0 = lpt ∧ avol0 ↓ avol ∧ ns0 = ns), # lpt = # avol, awbuf-inv(avol, bleb), n ≤ # buf, # avol[bleb.leb].data + n ≤ LEB_SIZE ⊦ ⟨awbuf_write_buf#(n, buf, adr, m, nx, lpt, ns, bleb; avol, isbuf; err)⟩ (synced(avol) ∧ adr0 = adr ∧ m0 = m ∧ nx0 = nx ∧ lpt0 = lpt ∧ avol0 ↓ avol ∧ ns0 = ns), bleb = nobuffer, adr0 = adr ∧ m0 = m ∧ nx0 = nx ∧ lpt0 = lpt ∧ avol0 ↓ avol ∧ ns0 = ns |
⟨awbuf_write_buf#(n, buf, adr, m, nx, lpt, ns, bleb; avol, isbuf; err)⟩ (avol = avol1 ∧ (isbuf ↔ isbuf0) ∧ err = err0), # lpt = # avol, adr0 = adr, lpt0 = lpt, m0 = m, ns0 = ns, nx0 = nx, awbuf-inv(avol, bleb), avol0 ↓ avol1, # avol[bleb.leb].data + n ≤ LEB_SIZE, n ≤ # buf ⊦ ⟨awbuf_write_buf#(n, buf, adr, m, nx, lpt, ns, bleb; avol, isbuf; err)⟩ (synced(avol) ∧ adr0 = adr ∧ m0 = m ∧ nx0 = nx ∧ lpt0 = lpt ∧ avol0 ↓ avol ∧ ns0 = ns), bleb = nobuffer, adr0 = adr ∧ m0 = m ∧ nx0 = nx ∧ lpt0 = lpt ∧ avol0 ↓ avol ∧ ns0 = ns