Free Zinbiel Algebras¶
AUTHORS:
- Travis Scrimshaw (2015-09): initial version
-
sage.algebras.free_zinbiel_algebra.
FreeZinbielAlgebra
¶ 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 (see [Lod1995] and [LV2012]) 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, including the empty word. This is a slight abuse as it is supposed to be 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:
-
class
sage.algebras.free_zinbiel_algebra.
ZinbielFunctor
(vars)¶ Bases:
sage.categories.pushout.ConstructionFunctor
A constructor for free Zinbiel algebras.
EXAMPLES:
sage: P = algebras.FreeZinbiel(ZZ, 'x,y') sage: x,y = P.gens() sage: F = P.construction()[0]; F Zinbiel[x,y] sage: A = GF(5)['a,b'] sage: a, b = A.gens() sage: F(A) Free Zinbiel algebra on generators (Z[x], Z[y]) over Multivariate Polynomial Ring in a, b over Finite Field of size 5 sage: f = A.hom([a+b,a-b],A) sage: F(f) Generic endomorphism of Free Zinbiel algebra on generators (Z[x], Z[y]) over Multivariate Polynomial Ring in a, b over Finite Field of size 5 sage: F(f)(a * F(A)(x)) (a+b)*Z[x]
-
merge
(other)¶ Merge
self
with another construction functor, or return None.EXAMPLES:
sage: F = sage.algebras.free_zinbiel_algebra.ZinbielFunctor(['x','y']) sage: G = sage.algebras.free_zinbiel_algebra.ZinbielFunctor(['t']) sage: F.merge(G) Zinbiel[x,y,t] sage: F.merge(F) Zinbiel[x,y]
Now some actual use cases:
sage: R = algebras.FreeZinbiel(ZZ, 'x,y,z') sage: x,y,z = R.gens() sage: 1/2 * x 1/2*Z[x] sage: parent(1/2 * x) Free Zinbiel algebra on generators (Z[x], Z[y], Z[z]) over Rational Field sage: S = algebras.FreeZinbiel(QQ, 'z,t') sage: z,t = S.gens() sage: x + t Z[t] + Z[x] sage: parent(x + t) Free Zinbiel algebra on generators (Z[z], Z[t], Z[x], Z[y]) over Rational Field
-