| ⟨awbuf_add_log_leb#(m, m0, adr, m1, avol, lpt, ns, isbuf; nx, bleb; err)⟩ (nx = nx1 ∧ bleb = bleb0 ∧ err = err0), # lpt = # avol, adr0 = adr, lpt0 = lpt, m0 = # avol[m].data, m2 = m1, ns0 = ns, nx0 = nx1, avol[m].mapped?, m < # avol, awbuf-inv(avol, bleb), synced(avol), avol0 ↓ avol ⊦ ⟨awbuf_add_log_leb#(m, m0, adr, m1, avol, lpt, ns, isbuf; nx, bleb; err)⟩ (synced(avol) ∧ adr0 = adr ∧ m2 = m1 ∧ nx0 = nx ∧ lpt0 = lpt ∧ avol0 ↓ avol ∧ ns0 = ns), adr0 = adr ∧ m2 = m1 ∧ nx0 = nx ∧ lpt0 = lpt ∧ avol0 ↓ avol ∧ ns0 = ns |
⟨awbuf_add_log_leb#(m, # avol[m].data, adr, m1, avol, lpt, ns, isbuf; nx, bleb; err)⟩ (nx = nx1 ∧ bleb = bleb0 ∧ err = err0), # lpt = # avol, avol[m] = mapped(buf), nx1 ≠ nx, m < # avol, awbuf-inv(avol, bleb), synced(avol), avol0 ↓ avol ⊦ ⟨awbuf_add_log_leb#(m, # avol[m].data, adr, m1, avol, lpt, ns, isbuf; nx, bleb; err)⟩ (nx1 = nx)
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ aleb.mapped? ↔ (∃ buf. aleb = mapped(buf)); (as)