| avols = avols0[default-volid, avols0[default-volid][m, unmapped]], v = default-volid, m < # avols0[default-volid], ebm-cons(avols0), ebm-vol-inv(abs(avols0[default-volid])), default-volid ∈ avols0 ⊦ ⟪if v ∈ avols ∧ m < # avols[v] ∧ ¬ avols[v][m].mapped? then {fail_or_success#(; ; err); if err = ESUCCESS then avols[v][m] := mapped(emptyleb, 0)} else abort⟫ ⟨avol := abs(avols0[default-volid]); ebm_avol_remap#(m; avol; err0)⟩ (avol = abs(avols[default-volid]) ∧ err = err0) |
avols = avols0[default-volid, avols0[default-volid][m, unmapped]], v = default-volid, m < # avols0[default-volid], ebm-cons(avols0), ebm-vol-inv(abs(avols0[default-volid])), default-volid ∈ avols0 ⊦ ⟪fail_or_success#(; ; err); if err = ESUCCESS then avols[v][m] := mapped(emptyleb, 0)⟫ ⟨avol := abs(avols0[default-volid]); ebm_avol_remap#(m; avol; err0)⟩ (avol = abs(avols[default-volid]) ∧ err = err0)
Used simplifier rules: ⊦ v ∈ avols[v, evol]; (s)% ⊦ avols[v, evol][v] = evol; (s)% ⊦ # evol[n, leb] = # evol; (s)% ⊦ m < # evol → evol[m, leb][m] = leb; (s)% ⊦ ¬ unmapped.mapped?; (s)