| tree0 = dnode(md, sdt), tree0[parent(str ' + p0)].dir?, parent(str ' + p0) ∈ tree0, ∀ tree0, tree1. tree0[parent(p0)].dir? ∧ parent(p0) ∈ tree0 → tree0[p0, tree1].fids = tree0.fids ∪ tree1.fids ∨ p0 = ε ∨ p0 ∈ tree0 ⊦ tree0[str ' + p0, tree1].fids = tree0.fids ∪ tree1.fids, str ' ∈ tree0 ∧ p0 ∈ tree0[str '] |
⊦ dnode(md, sdt).fids = sdt.fids
dnode(md, sdt)[parent(str ' + p0)].dir?, parent(str ' + p0) ∈ dnode(md, sdt), ∀ tree0, tree1. tree0[parent(p0)].dir? ∧ parent(p0) ∈ tree0 → tree0[p0, tree1].fids = tree0.fids ∪ tree1.fids ∨ p0 = ε ∨ p0 ∈ tree0 ⊦ dnode(md, sdt)[str ' + p0, tree1].fids = sdt.fids ∪ tree1.fids, str ∈ sdt ∧ p0 ∈ sdt[str]
Used simplifier rules: fids-dnode: ⊦ dnode(md, sdt).fids = sdt.fids;%str ∈ sdt ⊦ dnode(md, sdt)[str '] = sdt[str]; (s)% ⊦ str ' ∈ dnode(md, sdt) ↔ str ∈ sdt; (s)