| # buf0 = encoding-size(sb, EB_PAGE_SIZE), # 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 ⊦ [fail_or_success#(; ; err); avol0 := avol; if err = ESUCCESS then avol[0] := mapped(subarray(buf0, 0, encoding-size(sb, EB_PAGE_SIZE)))] ( 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)) |
# buf0 = 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 ⊦ [choose err0 with ⌊err0⌋ ∨ err0 = ESUCCESS in err := err0; avol0 := avol; if err = ESUCCESS then avol[0] := mapped(subarray(buf0, 0, encoding-size(sb, EB_PAGE_SIZE)))] ( 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: fail_or_success#(; ; ERR) {choose ERR0 with ⌊ERR0⌋ ∨ ERR0 = ESUCCESS in ERR := ERR0};