Grossman-Larson Hopf Algebras¶
AUTHORS:
- Frédéric Chapoton (2017)
-
sage.combinat.grossman_larson_algebras.
GrossmanLarsonAlgebra
¶ The Grossman-Larson Hopf Algebra.
The Grossman-Larson Hopf Algebras are Hopf algebras with a basis indexed by forests of decorated rooted trees. They are the universal enveloping algebras of free pre-Lie algebras, seen as Lie algebras.
The Grossman-Larson Hopf algebra on a given set \(E\) has an explicit description using rooted forests. The underlying vector space has a basis indexed by finite rooted forests endowed with a map from their vertices to \(E\) (called the “labeling”). In this basis, the product of two (decorated) rooted forests \(S * T\) is a sum over all maps from the set of roots of \(T\) to the union of a singleton \(\{\#\}\) and the set of vertices of \(S\). Given such a map, one defines a new forest as follows. Starting from the disjoint union of all rooted trees of \(S\) and \(T\), one adds an edge from every root of \(T\) to its image when this image is not the fake vertex labelled
#
. The coproduct sends a rooted forest \(T\) to the sum of all tensors \(T_1 \otimes T_2\) obtained by splitting the connected components of \(T\) into two subsets and letting \(T_1\) be the forest formed by the first subset and \(T_2\) the forest formed by the second. This yields a connected graded Hopf algebra (the degree of a forest is its number of vertices).See [Pana2002] (Section 2) and [GroLar1]. (Note that both references use rooted trees rather than rooted forests, so think of each rooted forest grafted onto a new root. Also, the product is reversed, so they are defining the opposite algebra structure.)
Warning
For technical reasons, instead of using forests as labels for the basis, we use rooted trees. Their root vertex should be considered as a fake vertex. This fake root vertex is labelled
'#'
when labels are present.EXAMPLES:
sage: G = algebras.GrossmanLarson(QQ, 'xy') sage: x, y = G.single_vertex_all() sage: ascii_art(x*y) B + B # #_ | / / x x y | y sage: ascii_art(x*x*x) B + B + 3*B + B # # #_ _#__ | | / / / / / x x_ x x x x x | / / | x x x x | x
The Grossman-Larson algebra is associative:
sage: z = x * y sage: x * (y * z) == (x * y) * z True
It is not commutative:
sage: x * y == y * x False
When
None
is given as input, unlabelled forests are used instead; this corresponds to a \(1\)-element set \(E\):sage: G = algebras.GrossmanLarson(QQ, None) sage: x = G.single_vertex_all()[0] sage: ascii_art(x*x) B + B o o_ | / / o o o | o
Note
Variables names can be
None
, a list of strings, a string or an integer. WhenNone
is given, unlabelled rooted forests are used. When a single string is given, each letter is taken as a variable. Seesage.combinat.words.alphabet.build_alphabet()
.Warning
Beware that the underlying combinatorial free module is based either on
RootedTrees
or onLabelledRootedTrees
, with no restriction on the labellings. This means that all code calling thebasis()
method would not give meaningful results, sincebasis()
returns many “chaff” elements that do not belong to the algebra.REFERENCES: