Subtrees of nonplanar trees #
UnorderedTree.subtrees t is the multiset of all subtrees of t, the root included, one per
vertex, so its cardinality is t.numNodes. It is defined on planar representatives and descends to
the quotient because a permutation of children permutes the subtree multiset.
Main definitions #
Main results #
UnorderedTree.card_subtrees: one subtree per vertex.UnorderedTree.mem_subtrees_node_pair: membership at a binary node.
The nonplanar subtrees of a planar tree, root included.
Equations
- (RoseTree.node a cs).unorderedSubtrees = UnorderedTree.mk (RoseTree.node a cs) ::ₘ RoseTree.unorderedSubtreesList cs
Instances For
The nonplanar subtrees of a list of trees.
Equations
- RoseTree.unorderedSubtreesList [] = 0
- RoseTree.unorderedSubtreesList (c :: cs) = c.unorderedSubtrees + RoseTree.unorderedSubtreesList cs
Instances For
theorem
RoseTree.unorderedSubtrees_perm
{α : Type u_1}
{t s : RoseTree α}
:
t.Perm s → t.unorderedSubtrees = s.unorderedSubtrees
theorem
RoseTree.unorderedSubtreesList_permList
{α : Type u_1}
{cs ds : List (RoseTree α)}
:
PermList cs ds → unorderedSubtreesList cs = unorderedSubtreesList ds
theorem
RoseTree.card_unorderedSubtrees
{α : Type u_1}
(p : RoseTree α)
:
p.unorderedSubtrees.card = p.numNodes
theorem
RoseTree.card_unorderedSubtreesList
{α : Type u_1}
(cs : List (RoseTree α))
:
(unorderedSubtreesList cs).card = (List.map numNodes cs).sum
All subtrees of a nonplanar tree, root included.
Instances For
@[simp]
theorem
UnorderedTree.subtrees_mk
{α : Type u_1}
(t : RoseTree α)
:
(mk t).subtrees = t.unorderedSubtrees
@[simp]
@[simp]
theorem
UnorderedTree.mem_subtrees_node_pair
{α : Type u_1}
{m : UnorderedTree α}
{a : α}
{l r : UnorderedTree α}
:
One subtree per vertex.