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 ringn
– (optional) the number of generatorsnames
– 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
andy
.EXAMPLES:
sage: Z.<x,y,z> = algebras.FreeZinbiel(QQ) sage: (x*y)*z # indirect doctest Z[xyz] + Z[xzy]