| # avol0 < # avol1, abs(avol0, bleb, wbuf, avol1, rofs) ⊦ |
Used simplifier rules: abs-def: ⊦ abs(avol0, bleb, wbuf, avol1, rofs) ↔ # avol0 = # avol1 ∧ (∀ n. n < # avol0 → (buffered(n) ≠ bleb → avol0[n] = avol1[n]) ∧ ( ¬ rofs ∧ buffered(n) = bleb → avol0[n] = abs⊕(avol1[n], wbuf)) ∧ ( rofs ∧ buffered(n) = bleb → wbuf.offset = # avol1[n].data ∧ avol0[n] = abs⊕(avol1[n], wbuf) ∨ wbuf.offset < # avol1[n].data ∧ wbuf.offset + wbuf.nbytes < # avol1[n].data ∧ avol0[n] = avol1[n] ∧ subarray(wbuf.content, 0, wbuf.nbytes) = subarray (avol1[n].data, wbuf.offset, wbuf.nbytes)));% ⊦ m < n → ¬ n < m; (s)%# buf = n ⊦ subarray(buf, 0, n) = buf; (s)% ⊦ ¬ n < n; (s)% ⊦ m < n → n ≠ 0; (s)%lf: ⊦ m < n ∧ n < n0 → m +1 < n0; (forward) from specification nat-basic%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic