| links(ino, dirs) = ∅, abs(tree, ROOT_INO)(dirs), str ' ∈ tree[p0], p0 ∈ tree, ino ∈ dirs, ROOT_INO ∈ dirs, ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs, ∀ ino. ⌜ino⌝ ∈ tree.fids → ino ∈ files, ∃ m0. ispath(p0, ROOT_INO, m0, dirs, files) ∧ ispath(str ', m0, ino, dirs, files) ⊦ # orphans(dirs, files) = 0, ino = ROOT_INO, orphans(dirs, files) = ∅ |
links(dirs[m].entries[str], dirs) = ∅, abs(tree, ROOT_INO)(dirs), ispath(p0, ROOT_INO, m, dirs, files), str ∈ dirs[m].entries, m ∈ dirs, str ' ∈ tree[p0], p0 ∈ tree, dirs[m].entries[str] ∈ dirs, ROOT_INO ∈ dirs, ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs, ∀ ino. ⌜ino⌝ ∈ tree.fids → ino ∈ files ⊦ # orphans(dirs, files) = 0, dirs[m].entries[str] = ROOT_INO, orphans(dirs, files) = ∅
Used simplifier rules: ⊦ ispath(str ', n, m, dirs, files) ↔ n ∈ dirs ∧ str ∈ dirs[n].entries ∧ (m ∈ dirs ∨ m ∈ files) ∧ dirs[n].entries[str] = m; (s)