| fid0 ∈ fs ↔ fid0 ∈ root0.fids ∨ fid0 ∈ ofh.fids, root0[q + str '] = fnode(fid), root0[q].dir?, fids-cons(root0, fs, ofh), py(user, q, root0, fs), py(user, parent(path), root0, fs), str ' ∈ root0[q], q ∈ root0, path ∈ root0, q ⊑ path ⊦ fid0 ≠ fid ∧ fid0 ∈ fs ↔ fid0 ∈ (root0 -- path)[q + str ', root0[path]].fids ∨ fid0 ∈ ofh.fids, root0[path].dir?, (root0[q] -- restn(# q, path)).dir?, fid ∈ (root0 -- path)[q + str ', root0[path]].fids, fid ∈ ofh.fids, path ⊑ q + str ' |
⊦ p ⊑ p0 ↔ (∃ p1. p + p1 = p0)
Used simplifier rules: ⊦ p + q ∈ tree ↔ p ∈ tree ∧ q ∈ tree[p]; (s)%a: ⊦ (p + p0) + p1 = p + p0 + p1; from specification list[path]% ⊦ p + p0 ⊑ p + p1 ↔ p0 ⊑ p1; (s)% ⊦ p ⊑ str ' ↔ p = ε ∨ p = str '; (s)% ⊦ p ≠ ε → parent(p0 + p) = p0 + parent(p); (s)% ⊦ restn(# p, p + p0) = p0; (s)%p ≠ ε ⊦ p ∈ tree → ((tree -- p).dir? ↔ tree.dir?); (s) Used terms: path, q