| fid ∈ fs ↔ fid ∈ root0.fids ∨ fid ∈ ofh.fids, root0[parent(path')].dir?, fids-cons(root0, fs, ofh), py(user, parent(path), root0, fs), py(user, parent(path'), root0, fs), path ∈ root0, parent(path') ∈ root0, root0[path].dir? → pw(user, path, root0, fs) ⊦ fid ∈ fs ↔ fid ∈ (root0 -- path)[path', root0[path]].fids ∨ fid ∈ ofh.fids, path' = ε, path' ∈ root0, path ⊑ path', ¬ path ⊑ parent(path') ∧ (parent(path') ⊑ path ⊃ root0[parent(path')] -- restn(# path' - 1, path);root0[parent(path')]).dir? |
fid ∈ fs ↔ fid ∈ root0.fids ∨ fid ∈ ofh.fids, path' = p0 + str ', root0[p0].dir?, fids-cons(root0, fs, ofh), py(user, p0, root0, fs), py(user, parent(path), root0, fs), p0 ∈ root0, path ∈ root0, root0[path].dir? → pw(user, path, root0, fs) ⊦ fid ∈ fs ↔ fid ∈ (root0 -- path)[path', root0[path]].fids ∨ fid ∈ ofh.fids, path' = ε, path' ∈ root0, path ⊑ path', ¬ path ⊑ p0 ∧ (p0 ⊑ path ⊃ root0[p0] -- restn(# path' - 1, path);root0[p0]).dir?
Used simplifier rules: p ≠ ε ⊦ str = p.last ∧ p0 = parent(p) ↔ p = p0 + str '; (elim) Used terms: path', str, p