| fid ∈ fs ↔ fid ∈ root0.fids ∨ fid ∈ ofh.fids, root0[path'] = fnode(fid1), fnode(fid0) = root0[path], (root0 -- path)[parent(path')].dir?, 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 ⊦ fid ∈ fs ↔ fid ∈ ((root0.fids \ {fid0} ) \ (path' ⊑ path ⊃ root0[path'] -- restn(# path', path);root0[path']).fids) ∪ {fid0} ∨ fid ∈ ofh.fids, path' = ε, root0[path'].dir?, path ⊑ path', ¬ fid1 ∈ ofh.fids ∧ ¬ fid1 ∈ ((root0.fids \ {fid0} ) \ (path' ⊑ path ⊃ root0[path'] -- restn(# path', path);root0[path']).fids) ∪ {fid0} |
fid ∈ fs ↔ fid ∈ root0.fids ∨ fid ∈ ofh.fids, root0[path'] = fnode(fid1), fnode(fid0) = root0[path], (root0 -- path)[parent(path')].dir?, 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 ⊦ fid ∈ fs ↔ fid ∈ ((root0.fids \ {fid0} ) \ (path' ⊑ path ⊃ fnode(fid1) -- restn(# path', path);fnode(fid1)).fids) ∪ {fid0} ∨ fid ∈ ofh.fids, path' = ε, path ⊑ path', ¬ fid1 ∈ ofh.fids ∧ ¬ fid1 ∈ ((root0.fids \ {fid0} ) \ (path' ⊑ path ⊃ fnode(fid1) -- restn(# path', path);fnode(fid1)).fids) ∪ {fid0}
Used simplifier rules: ⊦ ¬ fnode(fid).dir?; (s)