| fid ∈ tree.fids, str ∈ sdt0[str, tree] → (∀ fid. fid ∈ sdt0[str, tree][str].fids → (∃ p. p ∈ sdt0[str, tree][str] ∧ sdt0[str, tree][str][p] = fnode(fid))), ∀ sdt1, fid, md. # sdt1 < # sdt0[str, tree] → fid ∈ sdt1.fids ∧ (∀ str. str ∈ sdt1 → (∀ fid. fid ∈ sdt1[str].fids → (∃ p. p ∈ sdt1[str] ∧ sdt1[str][p] = fnode(fid)))) → (∃ p. p ∈ dnode(md, sdt1) ∧ dnode(md, sdt1)[p] = fnode(fid)) ⊦ str ∈ sdt0, ∃ p. p ∈ dnode(md, sdt0[str, tree]) ∧ dnode(md, sdt0[str, tree])[p] = fnode(fid) |
fid ∈ tree.fids, ∀ fid0. fid0 ∈ tree.fids → (∃ p. p ∈ tree ∧ tree[p] = fnode(fid0)), ∀ sdt1, fid, md. # sdt1 < # sdt0[str, tree] → fid ∈ sdt1.fids ∧ (∀ str. str ∈ sdt1 → (∀ fid. fid ∈ sdt1[str].fids → (∃ p. p ∈ sdt1[str] ∧ sdt1[str][p] = fnode(fid)))) → (∃ p. p ∈ dnode(md, sdt1) ∧ dnode(md, sdt1)[p] = fnode(fid)) ⊦ str ∈ sdt0, ∃ p. p ∈ dnode(md, sdt0[str, tree]) ∧ dnode(md, sdt0[str, tree])[p] = fnode(fid)
Used simplifier rules: ⊦ sdt[str, tree][str] = tree; (s)% ⊦ str ∈ sdt[str, tree]; (s)