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