Noncommutative algebra

28 views
Skip to first unread message

Nurdin Takenov

unread,
Jun 26, 2014, 5:34:10 PM6/26/14
to sage-s...@googlegroups.com
Hello! I am trying to define a noncommutative algebra with two generators, x and y, with the following relation: y*x=a*x*y, where a is some unspecified complex number. As far as I can understand I have to define free algebra on 2 generators and then quotient by this relation. I've tried to do it like that:

sage: F.<x,y,a> = FreeAlgebra(QQ,3) 
R.<x,y,a> = F.g_algebra({y*x: a*x*y, a*x: x*a, y*a: a*y})

But it doesn't work. Is it because y*x=a*x*y is non-homogeneous? If so, what should I do?

Thanks.

Simon King

unread,
Jun 27, 2014, 9:01:51 AM6/27/14
to sage-s...@googlegroups.com
Hi Nurdin,

On 2014-06-26, Nurdin Takenov <grea...@gmail.com> wrote:
> I've tried
> to do it like that:
>
> sage: F.<x,y,a> = FreeAlgebra(QQ,3)
> R.<x,y,a> = F.g_algebra({y*x: a*x*y, a*x: x*a, y*a: a*y})
>
> But it doesn't work. Is it because y*x=a*x*y is non-homogeneous? If so,
> what should I do?

The definition of a g-algebra contains some technical non-degeneracy
conditions, and it seems that they are violated when you define the
algebra in that way. However, since "a" is supposed to be a parameter,
it would make sense to consider it as an element of a function field,
and then define an algebra over the function field. Like this:

sage: P.<a> = QQ[]
sage: K = P.fraction_field()
sage: F.<x,y> = FreeAlgebra(K)
sage: R.<x,y> = F.g_algebra({y*x: a*x*y})

(Relations x*a=a*x are automatically satisfied, since the elements of K
commute with elements of F)

However, unfortunately this doesn't work either (gives an error about
coercion), even though libsingular (which is used in the background)
should be able to work with function fields as base ring. This comes as
a surprise to me, and perhaps it is a bug. To be investigated.

Best regards,
Simon


Simon King

unread,
Jun 27, 2014, 9:10:14 AM6/27/14
to sage-s...@googlegroups.com
PS:

On 2014-06-27, Simon King <simon...@uni-jena.de> wrote:
> However, unfortunately this doesn't work either (gives an error about
> coercion), even though libsingular (which is used in the background)
> should be able to work with function fields as base ring. This comes as
> a surprise to me, and perhaps it is a bug. To be investigated.

sage: P.<a> = QQ[]
sage: K = P.fraction_field()
sage: type(K['x','y'])
<class 'sage.rings.polynomial.multi_polynomial_ring.MPolynomialRing_polydict_domain_with_category'>

So, libsingular is not used for this type of polynomial ring, even
though it should be possible.

Best regards,
Simon

Reply all
Reply to author
Forward
0 new messages