| q ∈ dnode(md, sdt[str, tree0]) ⊦ dnode(md, sdt[str, tree0])[q] = (str ' ⊑ q ⊃ tree0[q.tail];(q = ε ⊃ dnode(md, sdt[str, tree0]);dnode(md, sdt)[q])) |
⊦ tree[ε] = tree
q = str0 + q0, q ∈ dnode(md, sdt[str, tree0]) ⊦ dnode(md, sdt[str, tree0])[q] = (str ' ⊑ q ⊃ tree0[q.tail];(q = ε ⊃ dnode(md, sdt[str, tree0]);dnode(md, sdt)[q]))
Used simplifier rules: nil-at: ⊦ tree[ε] = tree;%path freely generated by ε, +;;% ⊦ p ⊑ ε ↔ p = ε; (s)% ⊦ str ' ≠ ε; (s)