Free Zinbiel Algebras

AUTHORS:

  • Travis Scrimshaw (2015-09): initial version
class sage.algebras.free_zinbiel_algebra.FreeZinbielAlgebra(R, n, names)

Bases: sage.combinat.free_module.CombinatorialFreeModule

The free Zinbiel algebra on n generators.

Let R be a ring. A Zinbiel algebra is a non-associative algebra with multiplication \circ that satisfies

a \circ (b \circ c) = a \circ (b \circ c) + a \circ (c \circ b).

Zinbiel algebras were first introduced by Loday as the Koszul dual to Leibniz algebras (hence the name coined by Lemaire).

Zinbiel algebras are divided power algebras, in that for

x^{\circ n} = \bigl(x \circ (x \circ \cdots \circ( x \circ x) \cdots
) \bigr)

we have

x^{\circ m} \circ x^{\circ n} = \binom{n+m-1}{m} x^{n+m}

and

\underbrace{\bigl( ( x \circ \cdots \circ x \circ (x \circ x) \cdots
) \bigr)}_{n+1 \text{ times}} = n! x^n.

Note

This implies that Zinbiel algebras are not power associative.

To every Zinbiel algebra, we can construct a corresponding commutative associative algebra by using the symmetrized product:

a * b = a \circ b + b \circ a.

The free Zinbiel algebra on n generators is isomorphic as R-modules to the reduced tensor algebra \bar{T}(R^n) with the product

(x_0 x_1 \cdots x_p) \circ (x_{p+1} x_{p+2} \cdots x_{p+q})
= \sum_{\sigma \in S_{p,q}} x_0 (x_{\sigma(1)} x_{\sigma(2)}
\cdots x_{\sigma(p+q)},

where S_{p,q} is the set of (p,q)-shuffles.

The free Zinbiel algebra is free as a divided power algebra. Moreover, the corresponding commutative algebra is isomorphic to the (non-unital) shuffle algebra.

INPUT:

  • R – a ring
  • n – (optional) the number of generators
  • names – the generator names

Warning

Currently the basis is indexed by all words over the variables, incuding the empty word. This is a slight abuse as it is suppose to be the indexed by all non-empty words.

EXAMPLES:

We create the free Zinbiel algebra and check the defining relation:

sage: Z.<x,y,z> = algebras.FreeZinbiel(QQ)
sage: (x*y)*z
Z[xyz] + Z[xzy]
sage: x*(y*z) + x*(z*y)
Z[xyz] + Z[xzy]

We see that the Zinbiel algebra is not associative, nor even power associative:

sage: x*(y*z)
Z[xyz]
sage: x*(x*x)
Z[xxx]
sage: (x*x)*x
2*Z[xxx]

We verify that it is a divided powers algebra:

sage: (x*(x*x)) * (x*(x*(x*x)))
15*Z[xxxxxxx]
sage: binomial(3+4-1,4)
15
sage: (x*(x*(x*x))) * (x*(x*x))
20*Z[xxxxxxx]
sage: binomial(3+4-1,3)
20
sage: ((x*x)*x)*x
6*Z[xxxx]
sage: (((x*x)*x)*x)*x
24*Z[xxxxx]

REFERENCES:

[Loday95]Jean-Louis Loday. Cup-product for Leibniz cohomology and dual Leibniz algebras. Math. Scand., pp. 189–196 (1995). http://www.math.uiuc.edu/K-theory/0015/cup_product.pdf
[LV12]Jean-Louis Loday and Bruno Vallette. Algebraic Operads. Springer-Verlag Berlin Heidelberg (2012). doi:10.1007/978-3-642-30362-3.
algebra_generators()

Return the algebra generators of self.

EXAMPLES:

sage: Z.<x,y,z> = algebras.FreeZinbiel(QQ)
sage: list(Z.algebra_generators())
[Z[x], Z[y], Z[z]]
gens()

Return the generators of self.

EXAMPLES:

sage: Z.<x,y,z> = algebras.FreeZinbiel(QQ)
sage: Z.gens()
(Z[x], Z[y], Z[z])
product_on_basis(x, y)

Return the product of the basis elements indexed by x and y.

EXAMPLES:

sage: Z.<x,y,z> = algebras.FreeZinbiel(QQ)
sage: (x*y)*z  # indirect doctest
Z[xyz] + Z[xzy]