| # buf0 = 0, avol = avol1[n, mapped(mkbuf(0))], err = ESUCCESS, err = err0, n < # avol1, ebm-vol-inv(avol), ebm-vol-inv(avol1), ebm-vol-inv(avol1[n, mapped(mkbuf(0))]), is-aligned(# buf0, EB_PAGE_SIZE), is-encoded-pad(orphans0, # orphans0, buf0), # buf0 ≤ LEB_SIZE, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ id○(avol, avol1, n) ∧ (err = ESUCCESS → avol[n].mapped? ∧ is-encoded-pad(orphans0, # orphans0, avol[n].data)) |
# buf0 = 0, n < # avol1, ebm-vol-inv(avol1), ebm-vol-inv(avol1[n, mapped(mkbuf(0))]), is-encoded-pad(orphans0, # orphans0, buf0) ⊦ # orphans0 = 0, orphans0 = ∅
Used simplifier rules: size-zero: ⊦ # ns ≠ 0 → ns ≠ ∅; (forward) from specification set-basic[nat-set]% ⊦ 0 ≤ m; (s)%n ≠ 0 ⊦ is-aligned(0, n); (s)% ⊦ EB_PAGE_SIZE ≠ 0; (s)%size-zero-01: ⊦ ns ≠ ∅ → # ns ≠ 0; (forward) from specification set-basic[nat-set]% ⊦ # ∅ = 0; (s)% ⊦ is-encoded-pad(ns, n, mkbuf(0)) ↔ ns = ∅ ∧ n = 0; (s)% ⊦ mapped(buf).data = buf; (s)% ⊦ mapped(buf).mapped?; (s)% ⊦ m < # avol → avol[m, aleb][m] = aleb; (s)% ⊦ id○(avol, avol, n); (ss)% ⊦ id○(avol[n, aleb], avol0, n) ↔ id○(avol, avol0, n); (s)% ⊦ ¬ ⌊ESUCCESS⌋ ; (s)