| avol = abs(avols0[default-volid]), avols = avols0[v, avols0[v][m, unmapped]], v = default-volid, m < # avols0[default-volid], m < # avols0[v], ebm-cons(avols0), ebm-vol-inv(abs(avols0[default-volid])), default-volid ∈ avols0, v ∈ avols0 ⊦ ⟪ebm_map#(default-volid, m; avols; err)⟫ ⟨ebm_avol_remap#(m; avol; err0)⟩ (avol = abs(avols[default-volid]) ∧ err = err0) |
avols = avols0[default-volid, avols0[default-volid][m, unmapped]], m < # avols0[default-volid], ebm-cons(avols0), ebm-vol-inv(abs(avols0[default-volid])), default-volid ∈ avols0 ⊦ ⟪ebm_map#(default-volid, m; avols; err)⟫ ⟨avol := abs(avols0[default-volid]); ebm_avol_remap#(m; avol; err0)⟩ (avol = abs(avols[default-volid]) ∧ err = err0)
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic