| fs[ri[inodekey(ino)]].directory, dentrykey(ino, str) ∈ ri, inodekey(ino) ∈ ri, fs[ri[inodekey(ino)]].nlink ≠ 0 ∨ ino = ROOT_INO ⊦ dentrykey(ino, str) ∈ ri ⊖ orphans(fs, ri), fs[ri[inodekey(ino)]].nlink = 0 ∧ ino ≠ ROOT_INO |
⊦ key ∈ ri ⊖ ks ↔ key ∈ ri ∧ ¬ key ∈ ks ∧ (key.data? → ¬ inodekey(key.ino) ∈ ks)
Used simplifier rules: ⊦ key ∈ orphans(fs, ri) ↔ key.inode? ∧ key ∈ ri ∧ fs[ri[key]].nlink = 0 ∧ key.ino ≠ ROOT_INO; (s)% ⊦ ¬ dentrykey(m, str).inode?; (s)% ⊦ ¬ dentrykey(m, str).data?; (s) Used terms: orphans(fs, ri), ri, dentrykey(ino, str)