| tree = dnode(md, sdt), p0 ∈ tree[str '], str ' ∈ tree, ∀ tree, q. p0 ∈ tree → tree[p0 + q] = tree[p0][q] ⊦ tree[(str ' + p0) + q] = tree[str ' + p0][q] |
⊦ str ' ∈ dnode(md, sdt) ↔ str ∈ sdt
⊦ str ∈ sdt → dnode(md, sdt)[str ' + p] = sdt[str][p]
str ∈ sdt ⊦ dnode(md, sdt)[str '] = sdt[str]
str ∈ sdt, p0 ∈ sdt[str], ∀ tree, q. p0 ∈ tree → tree[p0 + q] = tree[p0][q] ⊦ sdt[str][p0 + q] = sdt[str][p0][q]
Used simplifier rules: one-ind: ⊦ str ' ∈ dnode(md, sdt) ↔ str ∈ sdt;%at-dnode: ⊦ str ∈ sdt → dnode(md, sdt)[str ' + p] = sdt[str][p];%one-at: str ∈ sdt ⊦ dnode(md, sdt)[str '] = sdt[str];%a: ⊦ (p + p0) + p1 = p + p0 + p1; from specification list[path]