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