| # buf0 = encoding-size(sb, EB_PAGE_SIZE), avol0 = avol, # avol ≠ 0, ebm-vol-inv(avol), is-encoded(sb, buf0), encoding-size(sb, EB_PAGE_SIZE) ≤ LEB_SIZE ⊦ ⟪ebm_avol_change#(0, encoding-size(sb, EB_PAGE_SIZE), buf0; avol; err)⟫ ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ ebm-vol-inv(avol) ∧ (err = ESUCCESS → id○(avol, avol0, 0) ∧ (∃ buf. is-encoded(sb, buf) ∧ avol[0] = mapped(buf))) ∧ (err ≠ ESUCCESS → avol = avol0)) |
ebm-vol-inv(avol), m < # avol, n ≤ # buf, n ≤ LEB_SIZE, is-aligned(n, EB_PAGE_SIZE) ⊦ ⟪ebm_avol_change#(m, n, buf; avol; err)⟫ ebm-vol-inv(avol)
# buf0 = encoding-size(sb, EB_PAGE_SIZE), avol0 = avol, ebm-vol-inv(avol), is-encoded(sb, buf0), encoding-size(sb, EB_PAGE_SIZE) ≤ LEB_SIZE ⊦ # avol = 0, ebm-vol-inv(avol) ∧ 0 < # avol ∧ encoding-size(sb, EB_PAGE_SIZE) ≤ # buf0 ∧ encoding-size(sb, EB_PAGE_SIZE) ≤ LEB_SIZE ∧ is-aligned(encoding-size(sb, EB_PAGE_SIZE), EB_PAGE_SIZE)
# buf0 = encoding-size(sb, EB_PAGE_SIZE), avol0 = avol, buf1 = buf0, m0 = 0, n0 = encoding-size(sb, EB_PAGE_SIZE), 0 < # avol, ebm-vol-inv(avol), is-aligned(encoding-size(sb, EB_PAGE_SIZE), EB_PAGE_SIZE), is-encoded(sb, buf0), encoding-size(sb, EB_PAGE_SIZE) ≤ # buf0, encoding-size(sb, EB_PAGE_SIZE) ≤ LEB_SIZE ⊦ [ebm_avol_change#(0, encoding-size(sb, EB_PAGE_SIZE), buf0; avol; err)] ( ebm-vol-inv(avol) → (err = ESUCCESS ∨ ⌊err⌋ ) ∧ ebm-vol-inv(avol) ∧ (err = ESUCCESS → id○(avol, avol0, 0) ∧ (∃ buf. is-encoded(sb, buf) ∧ avol[0] = mapped(buf))) ∧ (err ≠ ESUCCESS → avol = avol0)), # avol = 0