CEM Hopf Algebra

The kauri.cem sub-package implements the Calaque, Ebrahimi-Fard and Manchon (CEM) [CEFM11] Hopf algebra \((\widetilde{H}, \Delta_{CEM}, \mu, \varepsilon_{CEM}, \bullet, S_{CEM})\), defined as follows.

  • \(\widetilde{H}\) is the space of non-empty trees, defined as \(\widetilde{H} = H / J\) where \(J\) is the ideal generated by \(\bullet - \emptyset\).

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

  • The counit map is defined by \(\varepsilon_{CEM}(\bullet) = 1\), \(\varepsilon_{CEM}(t) = 0\) for all \(\bullet \neq t \in \widetilde{H}\).

  • Multiplication \(\mu : \widetilde{H} \otimes \widetilde{H} \to \widetilde{H}\) is defined as the commutative juxtaposition of two forests.

  • Comultiplication \(\Delta : \widetilde{H} \to \widetilde{H} \otimes \widetilde{H}\) is defined as

    \[\Delta_{CEM}(t) = \sum_{s \subset t} s \otimes t / s\]

    where the sum runs over all possible subforests \(s\) of \(t\), and \(t / s\) is the tree obtained by contracting each connected component of \(s\) onto a vertex [CEFM11].

  • The antipode \(S_{CEM}\) is defined by \(S_{CEM}(\bullet) = \bullet\) and

    \[S_{CEM}(t) = -t - \sum_{t, \bullet \neq s \subset t} S_{CEM}(s) \, t / s.\]

Note

We adopt the singleton-reduced coproduct, where the singleton tree \(\bullet\) appears in each forest at most once. This defines a Hopf algebra on \(\widetilde{H} = H / J\). There are alternative forms of the coproduct defined directly on \(H\), but these do not define a Hopf algebra.

Note

Since \(\bullet\) is the unit, characters \(\phi\) on the resulting Hopf algebra must satisfy \(\phi(\bullet) = 1\).

Example: CEM coproduct

import kauri as kr
import kauri.cem as cem
t = kr.Tree([[],[[]]])
kr.display(cem.coproduct(t))
+ 2 + + + + +
counit = <kauri.maps.Map object>

The counit \(\varepsilon_{CEM}\) of the CEM Hopf algebra.

Type:

Map

Example usage:

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

The antipode \(S_{CEM}\) of the CEM Hopf algebra.

Type:

Map

Example usage:

t = Tree([[[]],[]])
kr.display(cem.antipode(t))
+ 3 5 + 2
coproduct(t: Tree) TensorProductSum[source]

The coproduct \(\Delta_{CEM}\) of the CEM Hopf algebra.

Parameters:

t (Tree) – tree

Return type:

TensorProductSum

Example usage:

t = Tree([[[]],[]])
kr.display(cem.coproduct(t))
+ 2 + + + + +
map_product(f: Map, g: Map) Map[source]

Returns the product of maps in the CEM Hopf algebra, defined by

\[(f \cdot g)(t) := \mu \circ (f \otimes g) \circ \Delta_{CEM} (t)\]

Note

cem.map_product(f,g) is equivalent to the Map operator f ^ g

Parameters:
Return type:

Map

Example usage:

f = cem.map_product(ident, cem.antipode)
print(f(Tree([[]])))
0
map_power(f: Map, exponent: int) Map[source]

Returns the power of a map in the CEM Hopf algebra, where the product of functions is defined by

\[(f \cdot g)(t) := \mu \circ (f \otimes g) \circ \Delta_{CEM} (t)\]

and negative powers are defined as \(f^{-n} = (f \circ S_{CEM})^n\), where \(S_{CEM}\) is the CEM antipode.

Parameters:
  • f (Map) – f

  • exponent (int) – exponent

Example usage:

S = cem.map_power(ident, -1)  # antipode
print(S(Tree([[]])))
-1 * [[]]