| dirs = dirs0 \ orphans(dirs0, files), files0 = files \ orphans(dirs0, files), ofh0 = abs-of(of), fs0 = abs-files(files), abs(tree0, ROOT_INO)(dirs0), isdir0 → isdir1, isdir1, tree0.dir?, fids-cons(tree0, fs0, ofh0), of-cons(of, dirs0, files), dom of < ino, afs-cons(dirs0, files) ⊦ ⟪vfs_recover#(isdir2; dirs, files0, asynced; of0, ino0, err)⟫ ( ( err = ESUCCESS → (∃ root, fs, ofh, psynced. posix-crash(tree0, fs0, ofh0, root, fs, ofh) ∧ ⟨posix_recover#(isdir2; root, fs, ofh; psynced, err0)⟩ ((ofh = abs-of(of0) ∧ fs = abs-files(files0) ∧ abs(root, ROOT_INO)(dirs) ∧ (psynced → asynced)) ∧ err = err0))) ∧ ( err ≠ ESUCCESS → (∀ tree, fs, ofh, isdir. ⟨posix_recover#(isdir2; root0, fs1, ofh1; psynced0, err0)⟩ (tree = root0 ∧ fs = fs1 ∧ ofh = ofh1 ∧ (isdir ↔ psynced0) ∧ err = err0)))) |