| fid ∈ tree.fids ⊦ ∃ p. p ∈ tree ∧ tree[p] = fnode(fid) |
∀ fid. Ptree(fnode(fid)), ∀ md, sdt. (∀ str. str ∈ sdt → Ptree(sdt[str])) → Ptree(dnode(md, sdt)) ⊦ Ptree(tree)
⊦ (∀ fid. ∀ fid0, tree. fnode(fid) = tree ∧ fid0 ∈ tree.fids → (∃ p. p ∈ tree ∧ tree[p] = fnode(fid0))) ∧ (∀ md, sdt. (∀ str. str ∈ sdt → (∀ fid, tree. sdt[str] = tree ∧ fid ∈ tree.fids → (∃ p. p ∈ tree ∧ tree[p] = fnode(fid)))) → (∀ fid, tree. dnode(md, sdt) = tree ∧ fid ∈ tree.fids → (∃ p. p ∈ tree ∧ tree[p] = fnode(fid))))
Used terms: λ tree0. ∀ fid, tree. tree0 = tree ∧ fid ∈ tree.fids → (∃ p. p ∈ tree ∧ tree[p] = fnode(fid)), tree