| # orphans0 = # orphans0, # buf0 = 0, n < # avol1, ebm-vol-inv(avol1[n, mapped(mkbuf(0))]), ebm-vol-inv(avol1), ∃ buf2, buf1. is-aligned(# buf0, EB_PAGE_SIZE) ∧ buf0 = buf2 + buf1 ∧ is-encoded(orphans0, buf2) ⊦ # orphans0 = 0, orphans0 = ∅ |
# buf = 0, # buf1 = 0, n < # avol1, ebm-vol-inv(avol1[n, mapped(mkbuf(0))]), ebm-vol-inv(avol1), is-encoded(orphans0, buf1) ⊦ # orphans0 = 0, orphans0 = ∅
Used simplifier rules: n ≠ 0 ⊦ is-aligned(0, n); (s)% ⊦ EB_PAGE_SIZE ≠ 0; (s)% ⊦ # buf = 0 → buf + buf0 = buf0; (s)%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ m + n = 0 ↔ m = 0 ∧ n = 0; (ws)%append-a: ⊦ (buf + buf0) + buf1 = buf + buf0 + buf1; from specification array-splice[buffer]% ⊦ #(buf + buf0) = # buf + # buf0; (s)