| abs(tree, ino0)(dirs), dirs[alink.pino].entries[alink.name] ∈ files, ino0 ∈ dirs, alink.pino ∈ dirs, alink.name ∈ dirs[alink.pino].entries, ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs, ∀ ino. ⌜ino⌝ ∈ tree.fids → ino ∈ files ⊦ # links(dirs[alink.pino].entries[alink.name], dirs) = 0, links(dirs[alink.pino].entries[alink.name], dirs) = ∅, ⌜dirs[alink.pino].entries[alink.name]⌝ ∈ tree.fids |
alink = mklink(m, str), abs(tree, ino0)(dirs), str ∈ dirs[m].entries, m ∈ dirs, ino0 ∈ dirs, dirs[m].entries[str] ∈ files, ∀ ino. ⌜ino⌝ ∈ tree.fids → ino ∈ files, ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs ⊦ # links(dirs[m].entries[str], dirs) = 0, links(dirs[m].entries[str], dirs) = ∅, ⌜dirs[m].entries[str]⌝ ∈ tree.fids
Used simplifier rules: ⊦ m = alink.pino ∧ str = alink.name ↔ alink = mklink(m, str); (elim) Used terms: alink, m, str