| ispath(p, n0, n1, dirs0, files), dirs0 ⊥ dirs1 ⊦ ispath(p, n0, n1, dirs0 ∪ dirs1, files) |
ispath(name + p0, n0, n1, dirs0, files), dirs0 ⊥ dirs1, ∀ n0, n1, dirs0, files, dirs1. ispath(p0, n0, n1, dirs0, files) ∧ dirs0 ⊥ dirs1 → ispath(p0, n0, n1, dirs0 ∪ dirs1, files) ⊦ ispath(name + p0, n0, n1, dirs0 ∪ dirs1, files)
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;%path freely generated by ε, +;;% ⊦ dirs ⊥ dirs0 → (ino ∈ dirs ∪ dirs0 ↔ ino ∈ dirs ∨ ino ∈ dirs0); (s)