| ⊦ (∀ fid. ∀ tree. fnode(fid) = tree → (∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ tree.fids)) ∧ (∀ md, sdt. (∀ str. str ∈ sdt → (∀ tree. sdt[str] = tree → (∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ tree.fids))) → (∀ tree. dnode(md, sdt) = tree → (∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ tree.fids))) |
⊦ (fnode(fid) = tree → (∃ fids. ∀ fid0. fid0 ∈ fids ↔ fid0 = fid)) ∧ ((∀ str. str ∈ sdt → (∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ sdt[str].fids)) → dnode(md, sdt) = tree0 → (∃ fids. ∀ fid0. fid0 ∈ fids ↔ fid0 ∈ sdt.fids))
Used simplifier rules: ⊦ dnode(md, sdt).fids = sdt.fids; (s)% ⊦ fid ∈ {fid0} ↔ fid = fid0; (s)% ⊦ fnode(fid).fids = {fid} ; (s)