| root0[path].dir? ↔ root0[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, path' ∈ root0, root0[path'].dir? → root0[path'].entries = ∅, root0[path'].dir? → pw(user, path, root0, fs) ⊦ fid ∈ fs ↔ fid ∈ (root0 -- path)[path', root0[path]].fids ∨ fid ∈ ofh.fids, path' = ε, (root0 -- path)[p0].dir?, path ⊑ path', ¬ root0[path'].dir? ∧ ¬ root0[path'].fid ∈ ofh.fids ∧ ¬ root0[path'].fid ∈ (root0 -- path)[path', root0[path]].fids |
fid ∈ fs ↔ fid ∈ root0.fids ∨ fid ∈ ofh.fids, root0[path].dir? ↔ root0[p0 + str '].dir?, root0[p0].dir?, fids-cons(root0, fs, ofh), py(user, parent(path), root0, fs), py(user, p0, root0, fs), path ∈ root0, p0 ∈ root0, str ' ∈ root0[p0], root0[path].dir? → pw(user, path, root0, fs), root0[path].dir? → root0[p0 + str '].entries = ∅ ⊦ fid ∈ fs ↔ fid ∈ (root0 -- path)[p0 + str ', root0[path]].fids ∨ fid ∈ ofh.fids, (p0 ⊑ path ⊃ root0[p0] -- restn(# p0, path);root0[p0]).dir?, path ⊑ p0 + str ', ¬ root0[path].dir? ∧ ¬ root0[p0 + str '].fid ∈ ofh.fids ∧ ¬ root0[p0 + str '].fid ∈ (root0 -- path)[p0 + str ', root0[path]].fids
Used simplifier rules: p ≠ ε, q ∈ tree -- p ⊦ p ∈ tree → (tree -- p)[q] = (q ⊑ p ⊃ tree[q] -- restn(# q, p);tree[q]); (s)% ⊦ ε ⊑ p; (s)% ⊦ ε ∈ tree; (s)% ⊦ tree[ε] = tree; (s)% ⊦ ¬ p ⊑ p0 + p1 → ¬ p ⊑ p0; (s)%p ≠ ε ⊦ p ∈ tree → (q ∈ tree -- p ↔ ¬ p ⊑ q ∧ q ∈ tree); (s)% ⊦ p + q ∈ tree ↔ p ∈ tree ∧ q ∈ tree[p]; (s)%a: ⊦ (p + p0) + p1 = p + p0 + p1; from specification list[path]% ⊦ p + str ' ≠ ε; (s)