The grafting pre-Lie product on rooted trees #
This file defines the grafting product T ◁ S of two rooted trees: the multiset of the trees
obtained by grafting S onto one vertex of T, that is, by making S a new child of that
vertex. Chapoton and Livernet show that this product makes the rooted trees a basis of the free
pre-Lie algebra; Foissy extends it to typed decorated trees.
The product is the one-guest case of the multi-insertion insertion T gs, which grafts every
guest of gs at once, on planar trees and on nonplanar ones alike. Everything here is read off
that general construction: the sum-over-vertices formula, the recursion on the root, and the
pre-Lie identity.
Main definitions #
RoseTree.insertSum: the grafting product on planar trees, with notationT ◁ S.UnorderedTree.insertSum: the grafting product on nonplanar trees.
Main results #
RoseTree.insertSum_eq_map_multiGraft:T ◁ Ssums the graftings ofSover the vertices ofT.RoseTree.insertSum_node: grafting at the root, or recursively inside one child.RoseTree.card_insertSum,UnorderedTree.card_insertSum: one summand per vertex ofT.UnorderedTree.insertSum_bind_insertSum: graftingS₁intoTand thenS₂into the result is graftingS₁ ◁ S₂intoTplus graftingS₁andS₂intoTat once.UnorderedTree.insertSum_assoc_symm: the associator of the grafting product is symmetric in its last two arguments, the right pre-Lie identity.
Implementation notes #
The pre-Lie identity holds only once children are unordered: grafting S₁ and then S₂ at one
vertex makes the new children [S₂, S₁], where grafting both at once makes them [S₁, S₂].
References #
The grafting product T ◁ S is the multiset of trees obtained by grafting S as a new
first child of one vertex of T.
Equations
- RoseTree.«term_◁_» = Lean.ParserDescr.trailingNode `RoseTree.«term_◁_» 65 65 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ◁ ") (Lean.ParserDescr.cat `term 66))
Instances For
T ◁ S sums, over the vertices p of T, the grafting of S at p.
Grafting into a node either adds a child at the root or grafts inside the children.
The pre-Lie identity #
Grafting S₁ into T and then S₂ into the result is grafting S₁ ◁ S₂ into T, plus
grafting S₁ and S₂ into T at once, once children are unordered.
The forest case of map_mk_bind_insertSum. The trees of each forest keep their order, since
only the children inside them are reordered.
The grafting product on nonplanar trees, the insertion of a single guest.
Instances For
The grafting product on nonplanar trees, the insertion of a single guest.
Equations
- UnorderedTree.«term_◁_» = Lean.ParserDescr.trailingNode `UnorderedTree.«term_◁_» 65 65 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ◁ ") (Lean.ParserDescr.cat `term 66))
Instances For
Grafting S₁ into T and then S₂ into the result is grafting S₁ ◁ S₂ into T, plus
grafting S₁ and S₂ into T at once. This is the degree-two case
T ∘ BX = (T ∘ B) ∘ X - T ∘ (B ∘ X) of Oudom and Guin's Proposition 3.7.
The associator of the grafting product is symmetric in its last two arguments, so that
(T ◁ S₁) ◁ S₂ - T ◁ (S₁ ◁ S₂) = (T ◁ S₂) ◁ S₁ - T ◁ (S₂ ◁ S₁), here stated without
subtraction.
One host and one guest give the grafting product, each output a one-tree forest.
Two one-tree forests multiply to their disjoint union and their graftings.