| avols = avols0[default-volid, avols0[default-volid][m, unmapped]], m < # avols0[default-volid], ebm-cons(avols0), default-volid ∈ avols0 ⊦ ⟪ebm_map#(default-volid, m; avols; err)⟫ (default-volid ∈ avols ∧ ebm-cons(avols)) |
avols = avols0[default-volid, avols0[default-volid][m, unmapped]], v = default-volid, m < # avols0[default-volid], ebm-cons(avols0), 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⟫ (default-volid ∈ avols ∧ ebm-cons(avols))
Used simplifier rules: ebm_map#(VOLID, LNUM; AVOLS; ERR) {if VOLID ∈ AVOLS ∧ LNUM < # AVOLS[VOLID] ∧ ¬ AVOLS[VOLID][LNUM].mapped? then {fail_or_success#(; ; ERR); if ERR = ESUCCESS then AVOLS[VOLID][LNUM] := mapped(emptyleb, 0)} else abort };