| dirs = dirs0 \ orphans(dirs0, files), files0 = files \ orphans(dirs0, files), dom of < ino, afs-cons(dirs0, files), of-cons(of, dirs0, files) ⊦ ⟪vfs_recover#(isdir0; dirs, files0, asynced; of0, ino0, err)⟫ (err = ESUCCESS → asynced ∧ of-cons(of0, dirs, files0) ∧ dom of0 < ino0 ∧ afs-cons(dirs, files0)) |
⊦
isdir ↔ isdir0, dirs = dirs0 \ orphans(dirs0, files1), files = files0, files0 = files1 \ orphans(dirs0, files1), dom of < ino, afs-cons(dirs0, files1), of-cons(of, dirs0, files1) ⊦ ⟪of := ∅; ino := 0; afs_recovery#(isdir; dirs, files; asynced, err)⟫ (err = ESUCCESS → asynced ∧ of-cons(of, dirs, files) ∧ dom of < ino ∧ afs-cons(dirs, files))
Used simplifier rules: recover: ⊦ ;