| avols = ∅ ⊦ ⟪ebm_create_volume#(default-volid, m; avols; err)⟫ ( (err = ESUCCESS → ⟨ebm_avol_format#(m; ; avol0, err1)⟩ (avol0 = abs(avols[default-volid]) ∧ ESUCCESS = err1)) ∧ (err ≠ ESUCCESS → (∀ avol. ⟨ebm_avol_format#(m; ; avol0, err1)⟩ (avol = avol0 ∧ err = err1)))) |
avols = ∅, n = m, v = default-volid ⊦ ⟪if ¬ v ∈ avols then {fail_or_success#(; ; err); if err = ESUCCESS then avols[v] := fill(mkabstractvolume(n), erased)} else abort⟫ ( (err = ESUCCESS → ⟨ebm_avol_format#(m; ; avol0, err1)⟩ (avol0 = abs(avols[default-volid]) ∧ ESUCCESS = err1)) ∧ (err ≠ ESUCCESS → (∀ avol. ⟨ebm_avol_format#(m; ; avol0, err1)⟩ (avol = avol0 ∧ err = err1))))
Used simplifier rules: ebm_create_volume#(VOLID, N; AVOLS; ERR) {if ¬ VOLID ∈ AVOLS then {fail_or_success#(; ; ERR); if ERR = ESUCCESS then AVOLS[VOLID] := fill(mkabstractvolume(N), erased)} else abort };