| dirs = dirs0 \ orphans(dirs0, files), files0 = files \ orphans(dirs0, files), asynced, icache-cons(icache, dirs0, files), dcache-cons(dcache, dirs0, files), pcache-cons(pcache, dirs0, files), synced(dirs0, icache, pcache), asynced0 → synced(files, icache, pcache), afs-cons(dirs0, files) ⊦ ⟪cache_recovery#(asynced1; dirs, files0, asynced2, icache0, dcache0, pcache0; asynced3, err)⟫ ( err = ESUCCESS → asynced2 ∧ icache-cons(icache0, dirs, files0) ∧ dcache-cons(dcache0, dirs, files0) ∧ pcache-cons(pcache0, dirs, files0) ∧ synced(dirs, icache0, pcache0) ∧ (asynced3 → synced(files0, icache0, pcache0)) ∧ afs-cons(dirs, files0)) |