| tree[p].dir? ↔ m ∈ dirs, ispath(p, ino, dirs, files) ↔ p ∈ tree, ((abs(tree, ino) * D))(dirs), ispath(p, ino, m, dirs, files), ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs, ∀ ino. ⌜ino⌝ ∈ tree.fids → ino ∈ files ⊦ meta(p, tree, abs-files(files)) = meta(ε, m, dirs, files) |
tree[p].dir? ↔ m ∈ dirs, ((abs(tree, ino) * D))(dirs), ispath(p, ino, m, dirs, files), p ∈ tree, ∀ ino. ⌜ino⌝ ∈ tree.fids → ino ∈ files, ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs ⊦ meta(p, tree, abs-files(files)) = meta(ε, m, dirs, files)
Used simplifier rules: ⊦ ispath(p, n, m, dirs, files) → ispath(p, n, dirs, files); (s)