| # 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 |
# buf0 = encoding-size(sb, EB_PAGE_SIZE), avol0 = avol, # avol ≠ 0, 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) ≤ LEB_SIZE ⊦ [ebm_avol_change#(0, encoding-size(sb, EB_PAGE_SIZE), buf0; avol; err)] ( ebm-vol-inv(avol) → (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → id○(avol, avol0, 0) ∧ (∃ buf. is-encoded(sb, buf) ∧ avol[0] = mapped(buf))) ∧ (err ≠ ESUCCESS → avol = avol0))
Used simplifier rules: ⊦ m ≤ m; (s)%let: ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward) from specification nat% ⊦ 0 < m ↔ m ≠ 0; (s)% ⊦ m < n → n ≠ 0; (s)