| tree[p0, tree1].fids = (tree.fids ∪ tree1.fids) \ tree[p0].fids, tree[parent(p0)].dir?, p0 ∈ tree, str ∈ sdt0[str, tree], tree[p0].fids ⊆ tree.fids ⊦ dnode(md, sdt0[str, tree][str, sdt0[str, tree][str][p0, tree1]]).fids = ((sdt0.fids ∪ tree.fids) ∪ tree1.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, tree1].fids = (tree.fids ∪ tree1.fids) \ tree[p0].fids, tree[parent(p0)].dir?, p0 ∈ tree, tree[p0].fids ⊆ tree.fids ⊦ p0 = ε, sdt0.fids ∪ tree[p0, tree1].fids = ((sdt0.fids ∪ tree.fids) ∪ tree1.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)