| p ∈ tree ⊦ (tree -- p).dir? ↔ tree.dir?, p = ε |
⊦ ¬ tree.dir? → (p ∈ tree ↔ p = ε)
⊦ tree.dir? ↔ (∃ md, sdt. tree = dnode(md, sdt))
⊦ tree.dir? ↔ ¬(∃ fid. tree = fnode(fid))
p ≠ ε ⊦ dnode(md, sdt) -- p ≠ fnode(fid)
Used simplifier rules: notdir-notin: ⊦ ¬ tree.dir? → (p ∈ tree ↔ p = ε);%dnode-elim-strong: ⊦ tree.dir? ↔ (∃ md, sdt. tree = dnode(md, sdt));%fnode-elim-strong: ⊦ tree.dir? ↔ ¬(∃ fid. tree = fnode(fid));%dnode-del: p ≠ ε ⊦ dnode(md, sdt) -- p ≠ fnode(fid);