| ⊦ ⟪cache_format#(n, asynced, LEB_SIZE, md; dirs, files, asynced0, icache, dcache, pcache; asynced1, err)⟫ ( err = ESUCCESS → asynced0 ∧ icache-cons(icache, dirs, files) ∧ dcache-cons(dcache, dirs, files) ∧ pcache-cons(pcache, dirs, files) ∧ synced(dirs, icache, pcache) ∧ (asynced1 → synced(files, icache, pcache)) ∧ afs-cons(dirs, files)) |
asynced1 ↔ asynced, size = LEB_SIZE ⊦ ⟪if size = LEB_SIZE then {asynced := asynced1; afs_format#(n, asynced1, size, md; dirs; files, asynced0, err); if err = ESUCCESS then icache_format#(; ; icache, err); if err = ESUCCESS then dcache_format#(; ; dcache, err); if err = ESUCCESS then pcache_format#(; ; pcache, err)} else abort⟫ ( err = ESUCCESS → asynced0 ∧ icache-cons(icache, dirs, files) ∧ dcache-cons(dcache, dirs, files) ∧ pcache-cons(pcache, dirs, files) ∧ synced(dirs, icache, pcache) ∧ (asynced → synced(files, icache, pcache)) ∧ afs-cons(dirs, files))
Used simplifier rules: format: ⊦ ;