| asynced0 ↔ asynced1, err = ESUCCESS, size = LEB_SIZE ⊦ ⟪icache_format#(; ; icache, err); if err = ESUCCESS then dcache_format#(; ; dcache, err); if err = ESUCCESS then pcache_format#(; ; pcache, err)⟫ ( err = ESUCCESS → true ∧ icache-cons(icache, (∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)], ∅) ∧ dcache-cons(dcache, (∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)], ∅) ∧ pcache-cons(pcache, (∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)], ∅) ∧ synced((∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)], icache, pcache) ∧ (asynced1 → synced(∅, icache, pcache)) ∧ afs-cons((∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)], ∅)) |
⊦ ⟪icache_format#(; ; icache, err); if err = ESUCCESS then dcache_format#(; ; dcache, err); if err = ESUCCESS then pcache_format#(; ; pcache, err)⟫ ( err = ESUCCESS → icache-cons(icache, (∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)], ∅) ∧ dcache-cons(dcache, (∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)], ∅) ∧ pcache-cons(pcache, (∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)], ∅) ∧ synced((∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)], icache, pcache) ∧ (asynced1 → synced(∅, icache, pcache)))
Used simplifier rules: ⊦ afs-cons((∅ ++ ROOT_INO)[ROOT_INO, mkdir(0, md, 0, 0, ∅)], ∅); (s)