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