| 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) |
⊦ p ∈ tree → abs(tree, ino0) = _∃(λ ino1. abs|(tree, ino0, p, ino1) * abs(tree[p], ino1))
tree[p].dir? ↔ m ∈ dirs, ((_∃(λ ino1. abs|(tree, ino, p, ino1) * abs(tree[p], ino1)) * D))(dirs), ispath(p, ino, m, dirs, files), p ∈ tree, ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs, ∀ ino. ⌜ino⌝ ∈ tree.fids → ino ∈ files ⊦ meta(p, tree, abs-files(files)) = meta(ε, m, dirs, files)
Used terms: p, ino, tree