Skip to content

Combinatorial Hopf Algebras

Everything else in this section is an algebra: a product, and nothing else. A Hopf algebra also has a coproduct, which takes one element to a sum of tensor pairs and pulls objects apart where the product puts them together. The two are not independent — they must satisfy

in the tensor square. That compatibility is the whole point of the structure, and it is also the best test available, because the product and the coproduct are written separately and the identity relates them.

Two such algebras live here, both indexed by compositions (ordered lists of positive parts), and dual to each other:

basisproductcoproduct
NSym — non-commutative symmetric functionsconcatenation, extended multiplicatively
QSym — quasi-symmetric functionsquasi-shuffledeconcatenation

The graded piece of degree has one basis element per composition of , so both have dimension — a count enumeratio already keeps.

NSym: concatenate

The product could not be simpler. is the free associative algebra on , so multiplying is sticking compositions together — and it is non-commutative, which is what the name records.

Concatenation

Concatenation, and the two orders differ.

source
<notatio-cell value="CircleTimes(NSymH([2]), NSymH([1, 3]))" />
<notatio-cell value="CircleTimes(NSymH([1]), NSymH([2]))" />
<notatio-cell value="CircleTimes(NSymH([2]), NSymH([1]))" />

QSym: quasi-shuffle

Interleave the two compositions — and at each step you may instead add the two leading parts together. That third option is what makes it a quasi-shuffle, and it is why rather than just .

The overlap term

The M₂ term is the overlap. QSym, unlike NSym, is commutative.

source
<notatio-cell value="CircleTimes(QSymM([1]), QSymM([1]))" />
<notatio-cell value="CircleTimes(QSymM([1]), QSymM([2]))" />
<notatio-cell value="CircleTimes(QSymM([2]), QSymM([1]))" />

The coproduct

Coproduct returns a sum of HopfTensor(left, right) pairs. For QSym it is deconcatenation — cut the composition at each of its gaps. For NSym it is the multiplicative extension of splitting a single part.

Pulling apart

Δ(M₁,₂) cuts at each gap. Δ(H₂) splits the part 2 as 0+2, 1+1, 2+0.

source
<notatio-cell value="Coproduct(QSymM([1, 2]))" />
<notatio-cell value="Coproduct(NSymH([2]))" />

Both coproducts are coassociative, and both satisfy the compatibility above — checked across every pair of basis elements up to degree 3, in both algebras. Those two facts are what make these bialgebras rather than an algebra and an unrelated map.

The antipode

A Hopf algebra has one more piece: an antipode with . On a graded connected algebra that axiom determines by a recursion — split off the two trivial terms of and

over the rest, where the left factor has strictly smaller degree. The package computes that way and then verifies the axiom by running it, rather than trusting the derivation.

S, and S² on the commutative side

On a commutative Hopf algebra the antipode is an involution, so S² = id on QSym.

source
<notatio-cell value="Antipode(QSymM([1]))" />
<notatio-cell value="Antipode(QSymM([1, 2]))" />
<notatio-cell value="Antipode(Antipode(QSymM([1, 2])))" />

Grading and dimension

Graded pieces

2^(n−1) compositions of n. The product is homogeneous: degrees add.

source
<notatio-cell value="AlgebraDimension(NSymAlgebra(4))" />
<notatio-cell value="AlgebraDimension(QSymAlgebra(5))" />
<notatio-cell value="HopfDegree(CircleTimes(QSymM([1]), QSymM([2])))" />

Two more bases, and one lattice underneath

A composition of is the same data as a subset of : take its partial sums. Refining a composition adds elements to that set and coarsening removes them, so the compositions of form a Boolean lattice — and the bases the subject is actually written in come from summing over that lattice and inverting.

definitioninverse
NSym
QSym

Those signed sums are Möbius inversion over the Boolean lattice, whose Möbius function is — the same inversion the incidence algebras compute in general, here in closed form because the lattice is known.

The two directions are opposite — coarsen for NSym, refine for QSym — and that is not a slip. NSym and QSym are dual, with dual to and dual to . So duality is the best test available here:

and since the two transition matrices are written down separately, nothing forces them to be inverse transposes of one another except the mathematics.

Change of basis

R_(2) is just H_(2); the finer composition is the one that picks up signs.

source
<notatio-cell value="InCompleteBasis(NSymR([1, 1]))" />
<notatio-cell value="InCompleteBasis(NSymR([2]))" />
<notatio-cell value="InMonomialBasis(QSymF([2]))" />
<notatio-cell value="InRibbonBasis(NSymH([2, 1]))" />

What the new bases buy

Both are first-class here — the product, coproduct, antipode and containment all work on and directly, and answers come back in the basis the question was asked in. What changes is how simple the answers are.

The ribbon product has a two-term closed form:

where is concatenation and is near-concatenation — join the two, adding 's last part to 's first. That second operation has no meaning in the basis at all.

The ribbon antipode is a single signed basis element:

for the conjugate composition — the transpose of the ribbon's skew shape. In the basis the same antipode is an alternating sum over every coarsening, so this is about as clear a demonstration of what a good basis is for as the subject offers.

Two terms, and one term

Concatenation and near-concatenation; then an antipode with a single term.

source
<notatio-cell value="CircleTimes(NSymR([2]), NSymR([1]))" />
<notatio-cell value="CircleTimes(QSymF([1]), QSymF([1]))" />
<notatio-cell value="Antipode(NSymR([3]))" />
<notatio-cell value="ConjugateComposition([2, 1])" />

Which involution is depends on a convention that is easy to get backwards — at both and are self-conjugate under the right one and swap under the wrong one. It is settled here by the antipode rather than by taste: only one of the two candidate maps makes a single term at all.

Things worth knowing

Tensor pairs get their own head. HopfTensor(a, b), not CircleTimes — that is already the shared ordered product across the algebra libraries, and overloading it for a genuine tensor pair would be a conflation.

The two algebras share an index set but are not the same algebra. Mixing and in one product is refused rather than silently coerced, and containment distinguishes them.

A sum of mixed degrees has no degree, so HopfDegree leaves that call standing.

Not built yet. Sym itself sitting inside QSym as the symmetric functions, and the Hopf-algebra maps between these and the other algebras in this section.