| tree[p] = dnode(md, sdt), q ∈ tree[p, dnode(md, sdt[str, tree0])] ⊦ p ∈ tree ∧ tree.dir? → tree[p, dnode(md, sdt[str, tree0])][q] = (p + str ' ⊑ q ⊃ tree0[restn(# p + 1, q)];(q ⊑ p ⊃ tree[q][restn(# q, p + str '), tree0];tree[q])) |
tree[p] = dnode(md, sdt), tree.dir?, p ∈ tree, q ∈ tree[p, dnode(md, sdt[str, tree0])] ⊦ tree[p, dnode(md, sdt[str, tree0])][q] = (p + str ' ⊑ q ⊃ tree0[restn(# p + 1, q)];(q ⊑ p ⊃ tree[q][restn(# q, p + str '), tree0];tree[q]))