| psynced0 ↔ path' ∈ root0, err = ESUCCESS, err0 = err1, root = (root0 -- path)[path', tree0], tree = root0[path'], tree0 = root0[path], fids-cons(root0, fs, ofh), pre-renam(path, path', err, user, root0, fs, ofh) ⊦ [psynced := ?] fids-cons(root, fs, ofh), psynced0 ∧ ¬ tree.dir? ∧ ¬ tree.fid ∈ ofh.fids ∧ ¬ tree.fid ∈ root.fids |
path' ≠ ε, 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 ⊑ path', path' ∈ root0 → (root0[path].dir? ↔ root0[path'].dir?), path' ∈ root0 ∧ root0[path'].dir? → root0[path'].entries = ∅, root0[path].dir? → pw(user, path, root0, fs) ⊦ [psynced := ?] fids-cons((root0 -- path)[path', root0[path]], fs, ofh), path' ∈ root0 ∧ ¬ root0[path'].dir? ∧ ¬ root0[path'].fid ∈ ofh.fids ∧ ¬ root0[path'].fid ∈ (root0 -- path)[path', root0[path]].fids
Used simplifier rules: ⊦ pre-renam(p, p', ESUCCESS, user, root, fs, ofh) ↔ p' ≠ ε ∧ p ∈ root ∧ ¬ p ⊑ p' ∧ parent(p') ∈ root ∧ root[parent(p')].dir? ∧ (p' ∈ root → (root[p].dir? ↔ root[p'].dir?)) ∧ (p' ∈ root ∧ root[p'].dir? → root[p'].entries = ∅) ∧ py(user, parent(p), root, fs) ∧ py(user, parent(p'), root, fs) ∧ (root[p].dir? → pw(user, p, root, fs)); (s)