ASKSAGE: Sage Q&A Forum - RSS feedhttps://ask.sagemath.org/questions/Q&A Forum for SageenCopyright Sage, 2010. Some rights reserved under creative commons license.Sun, 02 Jan 2022 17:22:35 +0100Constructing a non-commutative algebra over Z[q, q^-1] given some relationshttps://ask.sagemath.org/question/60516/constructing-a-non-commutative-algebra-over-zq-q-1-given-some-relations/
I would like to construct a non-commutative alegebra over Z[q, q^-1] generated by the variables u1, u2, u3 with the relations:
u2*u1 = q*u1*u2
u3*u2 = (q^2)*u2*u3
u3*u1 = u1*u3
but I am having some trouble getting this to work. I have primarily been trying to do this using the FreeAlgebra structure. Here is what I have tried:
----------
Zq.<q> = LaurentPolynomialRing(ZZ)
A.<u1,u2, u3> = FreeAlgebra(Zq, 3)
G = A.g_algebra({u2*u1: q*u1*u2, u3*u2: (q**2)*u2*u3})
G
but I get the errors:
AttributeError: 'FreeAlgebra_generic_with_category.element_class' object has no attribute 'lift'
TypeError: unable to coerce <class 'sage.algebras.free_algebra.FreeAlgebra_generic_with_category.element_class'> to `an integer`
----------
Zqring.<q, qinv> = ZZ[]
qideal = Zqring.ideal(q*qinv - 1)
Zq.<q, qinv> = Zqring.quotient(qideal)
A.<u1,u2,u3> = FreeAlgebra(Zq, 3)
I = A.ideal(u2*u1-q*u1*u2, u3*u2-(q**2)*u2*u3, side = "twosided")
W.<u1, u2, u3> = quotient(A,I)
u2*u1-q*u1*u2
but this outputs "(-q)*u1*u2 + u2*u1" and not "0"
----------
Zqring.<q, qinv> = ZZ[]
qideal = Zqring.ideal(q*qinv - 1)
Zq.<q, qinv> = Zqring.quotient(qideal)
A.<u1,u2,u3> = FreeAlgebra(Zq, 3)
I = A*[u2*u1-q*u1*u2]*A
W.<u1,u2,u3> = A.quo(I)
W(u2*u1-q*u1*u2)
and, again, the output is not "0".
Is there a better way I can construct such a non-commutative algebra?
Thanks!kAllenMathSun, 02 Jan 2022 17:22:35 +0100https://ask.sagemath.org/question/60516/How to define algebra via generators and relations?https://ask.sagemath.org/question/53782/how-to-define-algebra-via-generators-and-relations/Say I want to implement [Sweedler's Hopf algebra](https://en.wikipedia.org/wiki/Sweedler%27s_Hopf_algebra), just as an algebra, over an algebraically closed field.
I would define the free algebra on the generators, then the ideal by which I want to quotient, and the quotient should behave like I want to.
F.<x,g,ginv> = FreeAlgebra(QQbar)
I = F*[ x^2, g^2 - 1, g*ginv - 1, g*x + x*g ]*F
H = F.quo(I)
But if I now do
H(x*g + g*x)
the output is
xbar*gbar + gbar*xbar
instead of `0`.
How do I get sage to actually use the relations? The docs are not helpful here.
Jo BeThu, 08 Oct 2020 11:44:25 +0200https://ask.sagemath.org/question/53782/Calculations in quotient of a free algebrahttps://ask.sagemath.org/question/41219/calculations-in-quotient-of-a-free-algebra/I want to define (the algebra part of) Sweedler's four-dimensional Hopf algebra, which is freely generated by $x,y$ and subject to the relations
$$
x^2 = 1, \qquad y^2 = 0, \qquad x\cdot y = - y\cdot x~ ,
$$
but I don't see how to do it.
I have tried the following:
sage: A.<x,y> = FreeAlgebra(QQbar)
sage: I = A*[x*x - 1, y*y, x*y + y*x]*A
sage: H.<x,y> = A.quo(I)
sage: H
Quotient of Free Algebra on 2 generators (x, y) over Algebraic Field by the ideal (-1 + x^2, y^2, x*y + y*x)
But then I get
sage: H.one() == H(x*x)
False
So is this currently possibly using a different method?
ThanksJo BeWed, 21 Feb 2018 14:44:18 +0100https://ask.sagemath.org/question/41219/Confused about FreeAlgebra quotientshttps://ask.sagemath.org/question/32178/confused-about-freealgebra-quotients/I think I'm misunderstanding how quotients of free algebras work. I tried to make a free algebra on two generators x, y and mod out by xy = yx, so you get a polynomial algebra -- but that's not what happened.
<pre><code>sage: R.<x,y> = FreeAlgebra(QQ)
sage: I = R*[x*y-y*x]*R
sage: Q.<a,b> = R.quo(I)
sage: a*b is b*a
False
sage: Q.is_commutative()
False</code></pre>
Relatedly, the documentation for free_module_quotient gives an example (constructing the quaternions as a free quotient):
<pre><code>sage: n = 2
sage: A = FreeAlgebra(QQ,n,'x')
sage: F = A.monoid()
sage: i, j = F.gens()
sage: mons = [ F(1), i, j, i*j ]
sage: r = len(mons)
sage: M = MatrixSpace(QQ,r)
sage: mats = [M([0,1,0,0, -1,0,0,0, 0,0,0,-1, 0,0,1,0]), M([0,0,1,0, 0,0,0,1, -1,0,0,0, 0,-1,0,0]) ]
sage: H2.<i,j> = A.quotient(mons,mats)
</code></pre>
but I'm confused exactly how the matrices in the penultimate line describe the (multiplication) action? I.e. if I have some relation, say x^2 = 0, that I want to mod out by, how do I accomplish that using matrices?qwWed, 13 Jan 2016 00:03:58 +0100https://ask.sagemath.org/question/32178/