| (tree -- p0).fids = tree.fids \ tree[p0].fids, p0 ∈ tree, str ∈ sdt0[str, tree] ⊦ dnode(md, sdt0[str, tree][str, sdt0[str, tree][str] -- p0]).fids = (sdt0.fids ∪ tree.fids) \ tree[p0].fids, p0 = ε, str ∈ sdt0 |
⊦ dnode(md, sdt).fids = sdt.fids
⊦ ¬ str ∈ sdt → sdt[str, tree].fids = sdt.fids ∪ tree.fids
(tree -- p0).fids = tree.fids \ tree[p0].fids, p0 ∈ tree ⊦ p0 = ε, sdt0.fids ∪ (tree -- p0).fids = (sdt0.fids ∪ tree.fids) \ tree[p0].fids, str ∈ sdt0
Used simplifier rules: fids-dnode: ⊦ dnode(md, sdt).fids = sdt.fids;%fids-ins: ⊦ ¬ str ∈ sdt → sdt[str, tree].fids = sdt.fids ∪ tree.fids;% ⊦ str ∈ sdt[str0, tree] ↔ str = str0 ∨ str ∈ sdt; (ws)% ⊦ sdt[str, tree0][str, tree] = sdt[str, tree]; (s)% ⊦ sdt[str, tree][str] = tree; (s)