Grossman–Larson Hopf Algebra
The kauri.gl sub-package implements the Grossman-Larson (GL) [GL89] Hopf algebra
\((H, \Delta_{GL}, \cdot_{GL}, \varepsilon_{GL}, \bullet, S_{GL})\), defined as follows.
\(H\) is the set of all non-planar rooted trees.
The unit is the single-vertex tree \(\bullet\).
The counit map is defined by \(\varepsilon_{GL}(\bullet) = 1\), \(\varepsilon_{GL}(t) = 0\) for all \(|t| > 1\).
The coproduct \(\Delta_{GL}\) is cocommutative, and splits the children of the root into all possible subsets: for \(t = B_+(t_1, \ldots, t_k)\),
\[\Delta_{GL}(t) = \sum_{S \subseteq \{1,\ldots,k\}} B_+(t_i : i \in S) \otimes B_+(t_j : j \notin S)\]The product \(\cdot_{GL}\) (grafting) sums over all ways of attaching the children of the right tree to vertices of the left tree. The product is noncommutative.
The antipode \(S_{GL}(\bullet) = \bullet\) and
\[\begin{split}S_{GL}(t) = -t - \sum_{\substack{S \subset \{1,\ldots,k\} \\ S \neq \emptyset,\, S \neq \{1,\ldots,k\}}} S_{GL}(B_+(t_i : i \in S)) \cdot_{GL} B_+(t_j : j \notin S)\end{split}\]
Example: GL coproduct
import kauri as kr
import kauri.gl as gl
t = kr.Tree([[],[[]]])
kr.display(gl.coproduct(t))
Example: GL grafting product
import kauri as kr
import kauri.gl as gl
t1 = kr.Tree([[],[]])
t2 = kr.Tree([[]])
kr.display(gl.product(t1, t2))
- counit = <kauri.maps.Map object>
The counit \(\varepsilon_{GL}\) of the Grossman-Larson Hopf algebra.
- Type:
Example usage:
print(gl.counit(Tree([]))) # Returns 1 print(gl.counit(Tree([[]]))) # Returns 0
1 0
- antipode = <kauri.maps.Map object>
The antipode \(S_{GL}\) of the Grossman-Larson Hopf algebra.
- Type:
Example usage:
t = Tree([[],[]]) kr.display(gl.antipode(t))
- coproduct(t: Tree) TensorProductSum[source]
The coproduct \(\Delta_{GL}\) of the Grossman-Larson Hopf algebra.
For a tree \(t = B_+(t_1, \ldots, t_k)\):
\[\Delta_{GL}(t) = \sum_{S \subseteq \{1,\ldots,k\}} B_+(t_i : i \in S) \otimes B_+(t_j : j \notin S)\]- Parameters:
t (Tree) – tree
- Return type:
Example usage:
t = Tree([[[]],[]]) kr.display(gl.coproduct(t))
- product(s, t)[source]
The Grossman-Larson grafting product.
For trees \(s\) and \(t = B_+(b_1, \ldots, b_k)\), sums over all ways of attaching each \(b_i\) to a vertex of \(s\):
\[s \cdot_{GL} t = \sum_{f: \{1,\ldots,k\} \to V(s)} \mathrm{graft}(s, b_1, \ldots, b_k, f)\]Extends bilinearly to ForestSum arguments.
- Parameters:
- Return type:
Example usage:
kr.display(gl.product(Tree([[]]), Tree([[]])))
- map_product(f: Map, g: Map) Map[source]
Returns the convolution product of scalar-valued maps in the GL Hopf algebra, defined by
\[(f \cdot g)(t) := \mu \circ (f \otimes g) \circ \Delta_{GL} (t)\]Example usage:
f = Map(lambda x: 1 if len(x.list_repr) == 1 else 0) g = gl.map_product(f, f) print(g(Tree([[]])))
0
- map_power(f: Map, exponent: int) Map[source]
Returns the convolution power of a map in the GL Hopf algebra.
For negative exponents, the convolution inverse is computed via the recursive formula specific to the GL coproduct, then raised to the corresponding positive power. Negative exponents require scalar-valued maps.
Example usage:
f = Map(lambda x: 1 if len(x.list_repr) == 1 else 0) f_sq = gl.map_power(f, 2) print(f_sq(Tree([[]])))
0