| str ∈ sdt0[str, tree] → (∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ sdt0[str, tree][str].fids), ∀ str0. str0 ∈ sdt0[str, tree] → (∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ sdt0[str, tree][str0].fids), ∀ sdt1. # sdt1 < # sdt0[str, tree] → (∀ str. str ∈ sdt1 → (∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ sdt1[str].fids)) → (∃ fids. ∀ fid0. fid0 ∈ fids ↔ fid0 ∈ sdt1.fids) ⊦ str ∈ sdt0, ∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ sdt0.fids ∪ tree.fids |
∀ str0. str0 ∈ sdt0[str, tree] → (∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ sdt0[str, tree][str0].fids), ∀ fid. fid ∈ fids ↔ fid ∈ tree.fids, ∀ sdt1. # sdt1 < # sdt0[str, tree] → (∀ str. str ∈ sdt1 → (∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ sdt1[str].fids)) → (∃ fids. ∀ fid0. fid0 ∈ fids ↔ fid0 ∈ sdt1.fids) ⊦ str ∈ sdt0, ∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ sdt0.fids ∪ tree.fids
Used simplifier rules: ⊦ sdt[str, tree][str] = tree; (s)% ⊦ str ∈ sdt[str, tree]; (s)