| # buf0 = encoding-size(sb, EB_PAGE_SIZE), avol0 = avol, buf = buf0, m = 0, n = encoding-size(sb, EB_PAGE_SIZE), 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 ⊦ [if m < # avol ∧ n ≤ # buf ∧ n ≤ LEB_SIZE ∧ is-aligned(n, EB_PAGE_SIZE) then {fail_or_success#(; ; err); if err = ESUCCESS then avol[m] := mapped(subarray(buf, 0, n))} else abort] ( 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)), # avol = 0 |
# buf0 = encoding-size(sb, EB_PAGE_SIZE), avol0 = avol, buf = buf0, m = 0, n = encoding-size(sb, EB_PAGE_SIZE), 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 ⊦ [fail_or_success#(; ; err); if err = ESUCCESS then avol[m] := mapped(subarray(buf, 0, n))] ( 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)), # avol = 0
Used simplifier rules: ⊦ 0 < m ↔ m ≠ 0; (s)% ⊦ m ≤ m; (s)