| err = err0, ⌊err0⌋ ⊦ ⟪if err = ESUCCESS then dcache_format#(; ; dcache, err); if err = ESUCCESS then pcache_format#(; ; pcache, err)⟫ ( ( err = ESUCCESS → ⟨afs_format#(n, asynced2, LEB_SIZE, md; afs_dirs; afs_files, afs_asynced, err1)⟩ (afs_dirs = dirs ∧ afs_files = (files ⊕ pcache) ⊕ icache ∧ (afs_asynced ↔ asynced) ∧ ESUCCESS = err1)) ∧ ( err ≠ ESUCCESS → (∀ dirs, files, asynced. ⟨afs_format#(n, asynced2, LEB_SIZE, md; afs_dirs; afs_files, afs_asynced, err1)⟩ (dirs = afs_dirs ∧ files = afs_files ∧ (asynced ↔ afs_asynced) ∧ err = err1)))) |
err = err0, ⌊err0⌋ ⊦ ⟪skip; if err = ESUCCESS then pcache_format#(; ; pcache, err)⟫ ( ( err = ESUCCESS → ⟨afs_format#(n, asynced2, LEB_SIZE, md; afs_dirs; afs_files, afs_asynced, err1)⟩ (afs_dirs = dirs ∧ afs_files = (files ⊕ pcache) ⊕ icache ∧ (afs_asynced ↔ asynced) ∧ ESUCCESS = err1)) ∧ ( err ≠ ESUCCESS → (∀ dirs, files, asynced. ⟨afs_format#(n, asynced2, LEB_SIZE, md; afs_dirs; afs_files, afs_asynced, err1)⟩ (dirs = afs_dirs ∧ files = afs_files ∧ (asynced ↔ afs_asynced) ∧ err = err1))))
Used simplifier rules: ⊦ ⌊err⌋ → err ≠ ESUCCESS; (s)