| ispath(p, n, m, dirs, files) ⊦ lookup(p, n, dirs, files) = m |
ispath(name + p0, n, m, dirs, files), ∀ n, m, dirs, files. ispath(p0, n, m, dirs, files) → lookup(p0, n, dirs, files) = m ⊦ lookup(name + p0, n, dirs, files) = m
Used simplifier rules: path-here: ⊦ ispath(ε, n, m, dirs, files) ↔ valid-ino(n, dirs, files) ∧ m = n;%valid-ino: ⊦ valid-ino(ino, dirs, files) ↔ ino ∈ dirs ∨ ino ∈ files;%lookup-dir: n ∈ dirs ⊦ lookup(ε, n, dirs, files) = n;%lookup-file: ⊦ n ∈ files → lookup(ε, n, dirs, files) = n;%path freely generated by ε, +;;