| fid0 ∈ fs ↔ fid0 ∈ root0.fids ∨ fid0 ∈ ofh.fids, root0[path'] = fnode(fid), root0[parent(path')].dir?, fids-cons(root0, fs, ofh), py(user, parent(path), root0, fs), py(user, parent(path'), root0, fs), path' ∈ root0, path ∈ root0, parent(path') ∈ root0 ⊦ fid0 ≠ fid ∧ fid0 ∈ fs ↔ fid0 ∈ (root0 -- path)[path', root0[path]].fids ∨ fid0 ∈ ofh.fids, path' = ε, root0[path].dir?, fid ∈ ofh.fids, fid ∈ (root0 -- path)[path', root0[path]].fids, path ⊑ path' |
p ≠ ε ⊦ p ∈ tree0 ∧ tree0[parent(p)].dir? → tree0[p, tree1].fids = (tree0.fids \ tree0[p].fids) ∪ tree1.fids
fid0 ∈ fs ↔ fid0 ∈ root0.fids ∨ fid0 ∈ ofh.fids, root0[path'] = fnode(fid), root0[parent(path')].dir?, fids-cons(root0, fs, ofh), py(user, parent(path'), root0, fs), py(user, parent(path), root0, fs), parent(path') ∈ root0, path ∈ root0, path' ∈ root0 ⊦ fid0 ≠ fid ∧ fid0 ∈ fs ↔ fid0 ∈ (root0 -- path)[path', root0[path]].fids ∨ fid0 ∈ ofh.fids, path' = ε, root0[path].dir?, fid ∈ (root0 -- path)[path', root0[path]].fids, fid ∈ ofh.fids, path ⊑ path', path' ≠ ε ∧ path' ∈ root0 -- path ∧ (root0 -- path)[parent(path')].dir?
fid0 ∈ fs ↔ fid0 ∈ root0.fids ∨ fid0 ∈ ofh.fids, root0[path'] = fnode(fid), root0[parent(path')].dir?, (root0 -- path)[parent(path')].dir?, fids-cons(root0, fs, ofh), py(user, parent(path'), root0, fs), py(user, parent(path), root0, fs), parent(path') ∈ root0, path ∈ root0, path' ∈ root0, path' ∈ root0 -- path ⊦ fid0 ≠ fid ∧ fid0 ∈ fs ↔ fid0 ∈ ((root0 -- path).fids \ (root0 -- path)[path'].fids) ∪ root0[path].fids ∨ fid0 ∈ ofh.fids, path' = ε, root0[path].dir?, fid ∈ ((root0 -- path).fids \ (root0 -- path)[path'].fids) ∪ root0[path].fids, fid ∈ ofh.fids, path ⊑ path'
Used terms: root0[path], path', root0 -- path