| p0 ∈ sdt[str], str ∈ sdt, ∀ tree, q, tree0. p0 ∈ tree → tree[p0 + q, tree0] = tree[p0, tree[p0][q, tree0]] ⊦ dnode(md, sdt)[(str ' + p0) + q, tree0] = dnode(md, sdt[str, sdt[str][p0, sdt[str][p0][q, tree0]]]), p0 = ε |
p ≠ ε ⊦ str ∈ sdt → dnode(md, sdt)[str ' + p, tree0] = dnode(md, sdt[str, sdt[str][p, tree0]])
str ∈ sdt, p0 ∈ sdt[str], ∀ tree, q, tree0. p0 ∈ tree → tree[p0 + q, tree0] = tree[p0, tree[p0][q, tree0]] ⊦ dnode(md, sdt[str, sdt[str][p0 + q, tree0]]) = dnode(md, sdt[str, sdt[str][p0, sdt[str][p0][q, tree0]]]), p0 = ε
Used simplifier rules: put-rec: p ≠ ε ⊦ str ∈ sdt → dnode(md, sdt)[str ' + p, tree0] = dnode(md, sdt[str, sdt[str][p, tree0]]);%a: ⊦ (p + p0) + p1 = p + p0 + p1; from specification list[path]% ⊦ p + p0 = ε ↔ p = ε ∧ p0 = ε; (as)