Planar Grossman–Larson Hopf Algebra

The kauri.pgl sub-package implements the planar (ordered) Grossman-Larson Hopf algebra \((H, \Delta_{PGL}, \cdot_{PGL}, \varepsilon_{PGL}, \bullet, S_{PGL})\), defined as follows.

  • \(H\) is the set of all planar (ordered) rooted trees, where sibling order matters.

  • The unit is the single-vertex tree \(\bullet\).

  • The counit map is defined by \(\varepsilon_{PGL}(\bullet) = 1\), \(\varepsilon_{PGL}(t) = 0\) for all \(|t| > 1\).

  • The coproduct \(\Delta_{PGL}\) is cocommutative, and splits the children of the root into all possible subsets, preserving sibling order on both sides: for \(t = B_+(t_1, \ldots, t_k)\),

    \[\Delta_{PGL}(t) = \sum_{S \subseteq \{1,\ldots,k\}} B_+(t_i : i \in S) \otimes B_+(t_j : j \notin S)\]
  • The product \(\cdot_{PGL}\) (planar grafting) sums over all monotone assignments of the children of the right tree to vertices of the left tree (preserving left-to-right order), interleaving assigned branches at all positions among existing children. The product is noncommutative.

  • The antipode \(S_{PGL}(\bullet) = \bullet\) and

    \[\begin{split}S_{PGL}(t) = -t - \sum_{\substack{S \subset \{1,\ldots,k\} \\ S \neq \emptyset,\, S \neq \{1,\ldots,k\}}} S_{PGL}(B_+(t_i : i \in S)) \cdot_{PGL} B_+(t_j : j \notin S)\end{split}\]

Example: Planar GL coproduct

import kauri as kr
import kauri.pgl as pgl
t = kr.PlanarTree([[],[[]]])
kr.display(pgl.coproduct(t))
+ + +

Example: Planar GL grafting product

import kauri as kr
import kauri.pgl as pgl
t1 = kr.PlanarTree([[],[]])
t2 = kr.PlanarTree([[]])
kr.display(pgl.product(t1, t2))
3 + +
counit = <kauri.maps.Map object>

The counit \(\varepsilon_{PGL}\) of the planar Grossman-Larson Hopf algebra.

Type:

Map

Example usage:

print(pgl.counit(PlanarTree([])))  # Returns 1
print(pgl.counit(PlanarTree([[]])))  # Returns 0
1
0
antipode = <kauri.maps.Map object>

The antipode \(S_{PGL}\) of the planar Grossman-Larson Hopf algebra.

Since the planar GL algebra is noncommutative, the antipode is an anti-homomorphism: \(S(t_1 t_2) = S(t_2) S(t_1)\). This map uses anti=True to ensure forests are processed in reversed order.

Type:

Map

Example usage:

t = PlanarTree([[[]],[]])
kr.display(pgl.antipode(t))
2 + 2 + + 2
coproduct(t: PlanarTree) TensorProductSum[source]

The coproduct \(\Delta_{PGL}\) of the planar Grossman-Larson Hopf algebra.

For a tree \(t = B_+(t_1, \ldots, t_k)\):

\[\Delta_{PGL}(t) = \sum_{S \subseteq \{1,\ldots,k\}} B_+(t_i : i \in S) \otimes B_+(t_j : j \notin S)\]

where sibling order is preserved on both sides.

Parameters:

t (PlanarTree) – planar tree

Return type:

TensorProductSum

Example usage:

t = PlanarTree([[[]],[]])
kr.display(pgl.coproduct(t))
+ + +
product(s, t)[source]

The planar Grossman-Larson grafting product.

For trees \(s\) and \(t = B_+(b_1, \ldots, b_k)\), sums over all monotone assignments of \(b_1, \ldots, b_k\) to vertices of \(s\) (preserving left-to-right order), interleaving assigned branches at all positions among existing children.

Extends bilinearly to ForestSum arguments.

Parameters:
  • s (PlanarTree or ForestSum) – left operand

  • t (PlanarTree or ForestSum) – right operand

Return type:

ForestSum

Example usage:

kr.display(pgl.product(PlanarTree([[]]), PlanarTree([[]])))
2 +
map_product(f: Map, g: Map) Map[source]

Returns the convolution product of scalar-valued maps in the planar GL Hopf algebra, defined by

\[(f \cdot g)(t) := \mu \circ (f \otimes g) \circ \Delta_{PGL}(t)\]
Parameters:
Return type:

Map

map_power(f: Map, exponent: int) Map[source]

Returns the convolution power of a map in the planar GL Hopf algebra.

Negative exponents require scalar-valued maps.

Parameters:
  • f (Map) – f

  • exponent (int) – exponent

Return type:

Map