| avol = abs(avols[default-volid]), m < # avols[default-volid], ebm-cons(avols), ebm-vol-inv(abs(avols[default-volid])), default-volid ∈ avols ⊦ ⟪ebm_vol_unmap#(m, default-volid; avols); ebm_map#(default-volid, m; avols; err)⟫ ⟨ebm_avol_remap#(m; avol; err0)⟩ (avol = abs(avols[default-volid]) ∧ err = err0) |
avol = abs(avols[default-volid]), v = default-volid, m < # avols[default-volid], ebm-cons(avols), ebm-vol-inv(abs(avols[default-volid])), default-volid ∈ avols ⊦ ⟪if m < # avols[v] then ebm_unmap#(v, m; avols) else abort; ebm_map#(default-volid, m; avols; err)⟫ ⟨ebm_avol_remap#(m; avol; err0)⟩ (avol = abs(avols[default-volid]) ∧ err = err0)
Used simplifier rules: ebm_vol_unmap#(LNUM, VOLID; AVOLS) {if LNUM < # AVOLS[VOLID] then ebm_unmap#(VOLID, LNUM; AVOLS) else abort };