| ⊦ (∀ 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])))) |
⊦ (fnode(fid) = tree → (∃ fs0. (∀ fid0. fid0 ∈ fs0 ↔ fid0 = fid ∧ fid ∈ fs) ∧ (∀ fid. fid ∈ fs0 → fs0[fid] = fs[fid]))) ∧ ( (∀ str. str ∈ sdt → (∀ fs0. ∃ fs1. (∀ fid. fid ∈ fs1 ↔ fid ∈ sdt[str].fids ∧ fid ∈ fs0) ∧ (∀ fid. fid ∈ fs1 → fs1[fid] = fs0[fid]))) → dnode(md, sdt) = tree0 → (∃ fs1. (∀ fid0. fid0 ∈ fs1 ↔ fid0 ∈ sdt.fids ∧ fid0 ∈ fs0) ∧ (∀ fid. fid ∈ fs1 → fs1[fid] = fs0[fid])))
Used simplifier rules: ⊦ dnode(md, sdt).fids = sdt.fids; (s)% ⊦ fid ∈ {fid0} ↔ fid = fid0; (s)% ⊦ fnode(fid).fids = {fid} ; (s)