| boolvar ↔ boolvar0, dirs = dirs0, pageno = LEB_SIZE, ⌊err0⌋ ⊦ ⟨if pageno = LEB_SIZE then { {dirs := ∅, files := ∅; dirs := dirs ++ ROOT_INO; dirs[ROOT_INO] := mkdir(0, md, 0, 0, ∅); asynced := true; err := ESUCCESS} or {dirs := ?, files := ?, asynced := ?; fail#(; ; err)}} else abort⟩ (dirs1 = dirs ∧ files1 = files ∧ (boolvar ↔ asynced) ∧ err0 = err) |
boolvar ↔ boolvar0, dirs = dirs0, pageno = LEB_SIZE, ⌊err0⌋ ⊦ ⟨ {dirs := ∅, files := ∅; dirs := dirs ++ ROOT_INO; dirs[ROOT_INO] := mkdir(0, md, 0, 0, ∅); asynced := true; err := ESUCCESS} or {dirs := ?, files := ?, asynced := ?; fail#(; ; err)}⟩ (dirs1 = dirs ∧ files1 = files ∧ (boolvar ↔ asynced) ∧ err0 = err)