| ((abs(tree1, ino) * D1))(dirs), ((abs(tree0, ino) * D0))(dirs), ∀ ino. ⌜ino⌝ ∈ tree1.fids → ino ∈ files, ∀ ino. ⌜ino⌝ ∈ tree0.fids → ino ∈ files, ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs ⊦ (tree0.dir? ↔ tree1.dir?) ∧ (tree0.dir? ⊃ tree0.meta = tree1.meta;tree0.fid = tree1.fid) |
tree0 = dnode(md, sdt), ((abs(tree0, ino) * D0))(dirs), ((abs(tree1, ino) * D1))(dirs), ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs, ∀ ino. ⌜ino⌝ ∈ tree0.fids → ino ∈ files, ∀ ino. ⌜ino⌝ ∈ tree1.fids → ino ∈ files ⊦ (tree0.dir? ↔ tree1.dir?) ∧ (tree0.dir? ⊃ tree0.meta = tree1.meta;tree0.fid = tree1.fid)
tree0 = fnode(fid), ((abs(tree0, ino) * D0))(dirs), ((abs(tree1, ino) * D1))(dirs), ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs, ∀ ino. ⌜ino⌝ ∈ tree0.fids → ino ∈ files, ∀ ino. ⌜ino⌝ ∈ tree1.fids → ino ∈ files ⊦ (tree0.dir? ↔ tree1.dir?) ∧ (tree0.dir? ⊃ tree0.meta = tree1.meta;tree0.fid = tree1.fid)
Used simplifier rules: directory-tree, entries-tree generated by ∅, dnode, fnode, [ ];;