| ⊦ ⟨afs_format#(n, asynced2, LEB_SIZE, md; afs_dirs; afs_files, afs_asynced, err0)⟩ (afs_dirs = (∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)] ∧ afs_files = ∅ ∧ afs_asynced ∧ ESUCCESS = err0) |
asynced0 ↔ asynced2, dirs = afs_dirs, size = LEB_SIZE ⊦ ⟨if size = 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⟩ (dirs = (∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)] ∧ files = ∅ ∧ asynced ∧ ESUCCESS = err)
Used simplifier rules: afs_format#(N, DOSYNC, SIZE, MD; DIRS; FILES, ASYNCED, ERR) {if SIZE = 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 };