| m < # avols[v], ebm-cons(avols), is-aligned(n, EB_PAGE_SIZE), v ∈ avols, n ≤ # buf, n ≤ LEB_SIZE ⊦ ⟪ebm_change#(v, m, n, buf; avols; err)⟫ ebm-cons(avols) |
m < # avols[v], ebm-cons(avols), is-aligned(n, EB_PAGE_SIZE), v ∈ avols, n ≤ LEB_SIZE, n ≤ # buf ⊦ ⟪if v ∈ avols ∧ m < # avols[v] ∧ n ≤ LEB_SIZE ∧ n ≤ # buf ∧ is-aligned(n, EB_PAGE_SIZE) then {fail_or_success#(; ; err); if err = ESUCCESS then avols[v][m] := mapped(subarray(buf, 0, n) + mkempbuf(LEB_SIZE - n), n)} else abort⟫ ebm-cons(avols)
Used simplifier rules: change: ⊦ ;