| ∀ str. str ∈ sdt → (∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ sdt[str].fids), ∀ sdt0. # sdt0 < # sdt → (∀ str. str ∈ sdt0 → (∃ fids. ∀ fid. fid ∈ fids ↔ fid ∈ sdt0[str].fids)) → (∃ fids. ∀ fid0. fid0 ∈ fids ↔ fid0 ∈ sdt0.fids) ⊦ ∀ str, tree, sdt0. ¬(sdt = sdt0[str, tree] ∧ ¬ str ∈ sdt0), ∃ fids. ∀ fid0. fid0 ∈ fids ↔ fid0 ∈ sdt.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
Used simplifier rules: ⊦ ¬ str ∈ sdt → sdt[str, tree].fids = sdt.fids ∪ tree.fids; (s)