| 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, root0[path].dir? → pw(user, path, root0, fs), path' ∈ root0 ∧ root0[path'].dir? → root0[path'].entries = ∅, path' ∈ root0 → (root0[path].dir? ↔ root0[path'].dir?) ⊦ path' = ε, fids-cons((root0 -- path)[path', root0[path]], fs, ofh), path ⊑ path', path' ∈ root0 ∧ ¬ root0[path'].dir? ∧ ¬ root0[path'].fid ∈ ofh.fids ∧ ¬ root0[path'].fid ∈ (root0 -- path)[path', root0[path]].fids |
⊦ fids-cons(tree0, fs0, ofh0) → (fids-cons(tree1, fs1, ofh1) ↔ (∀ fid. (fid ∈ fs0 ↔ fid ∈ tree0.fids ∨ fid ∈ ofh0.fids) → (fid ∈ fs1 ↔ fid ∈ tree1.fids ∨ fid ∈ ofh1.fids)))
fid ∈ fs ↔ fid ∈ root0.fids ∨ fid ∈ ofh.fids, root0[parent(path')].dir?, fids-cons(root0, fs, ofh), py(user, parent(path), root0, fs), py(user, parent(path'), root0, fs), path ∈ root0, parent(path') ∈ root0, path' ∈ root0 → (root0[path].dir? ↔ root0[path'].dir?), 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' = ε, path ⊑ path', path' ∈ root0 ∧ ¬ root0[path'].dir? ∧ ¬ root0[path'].fid ∈ ofh.fids ∧ ¬ root0[path'].fid ∈ (root0 -- path)[path', root0[path]].fids
Used simplifier rules: fids-cons-reduce: ⊦ fids-cons(tree0, fs0, ofh0) → ( fids-cons(tree1, fs1, ofh1) ↔ (∀ fid. (fid ∈ fs0 ↔ fid ∈ tree0.fids ∨ fid ∈ ofh0.fids) → (fid ∈ fs1 ↔ fid ∈ tree1.fids ∨ fid ∈ ofh1.fids)));