Singular
https://www.singular.uni-kl.de/forum/

Computation with subalgebra
https://www.singular.uni-kl.de/forum/viewtopic.php?f=10&t=2869
Page 1 of 1

Author:  Hamad [ Mon Sep 30, 2019 5:53 pm ]
Post subject:  Computation with subalgebra

Dear members,

Assume I have a noncommutative algebra A with variables x(1), x(2),..., x(6) and a noncommutative subalgebra B of A generated by the elements p=x(1)*x(3), q=x(1)(2), t=x(1)*x(4)*x(5), r=x(2)*x(3)*x(6) and assume that I computed for example the bracket [p, r] by hand and I got the result
[p, r]= p*q*t*r - p*t^2+ r.

The problem when I use Singular to compute the same bracket [p, r], I got the result in the variables x(1), x(2),..., x(6) not in p,q,t,r.

My question: How can I make Singular give me the results of the bracket [p, r] in the elements p,q,t,r as I do it by hand?


It will take a lot of time if I do it by hand.

Author:  levandov [ Fri Jan 17, 2020 7:06 pm ]
Post subject:  Re: Computation with subalgebra

Hi,

there's a workaround to do what you want.
Your expression for q as x(1)(2) is not clear, I
interprete it as x(1)^2.

Code:
LIB "freegb.lib";
ring a = 0, (x(1..6),t,r,p,q),lp;
ring A = freeAlgebra(a,10);
ideal subalg= p - x(1)*x(3), q - x(1)^2,  t - x(1)*x(4)*x(5), r-x(2)*x(3)*x(6);
option(redSB); option(redTail);
subalg = twostd(subalg); // has finite Groebner basis
subalg;
> subalg[1]=x(2)*x(3)*x(6)-r
> subalg[2]=x(1)*q-q*x(1)
> subalg[3]=x(1)*p-q*x(3)
> subalg[4]=x(1)*t-q*x(4)*x(5)
> subalg[5]=x(1)*x(4)*x(5)-t
> subalg[6]=x(1)*x(3)-p
> subalg[7]=x(1)*x(1)-q
poly P = x(1)*x(3); poly Q = x(1)^(2);
poly T = x(1)*x(4)*x(5); poly R = x(2)*x(3)*x(6);
bracket(P,R);
> x(1)*x(3)*x(2)*x(3)*x(6)-x(2)*x(3)*x(6)*x(1)*x(3)
NF(bracket(P,R), subalg); // presentation via p,q,r,t
> -r*p+p*r
P*Q*T*R - P*T^2 + R;
> x(1)*x(3)*x(1)*x(1)*x(1)*x(4)*x(5)*x(2)*x(3)*x(6)-x(1)*x(3)*x(1)*x(4)*x(5)*x(1)*x(4)*x(5)+x(2)*x(3)*x(6)
NF(P*Q*T*R - P*T^2 + R, subalg); // presentation via p,q,r,t
> -p*t*t+p*q*t*r+r

Author:  Hamad [ Fri Feb 07, 2020 1:52 pm ]
Post subject:  Re: Computation with subalgebra

Dear Levandov,

Thank you a lot for your help.
But I couldn't use your idea for my computation. I think it doesn't work.
Let me explain exactly what I want to compute.
I have the algebra U(sl4) generated by the variables:
x(1), x(2), x(3), x(4), x(5), x(6), y(1), y(2), y(3), y(4), y(5), y(6), h(1), h(2), h(3).
And I have the subalgebra B generated by:
1, h(1), h(2), h(3), b(1)=x(1)*y(1), b(2)=x(2)*y(2), b(3)=x(3)*y(3), b(4)=x(4)*y(4), b(5)=x(5)*y(5), b(6)=x(6)*y(6), ... , b(20)=....
And I want to compute the element b(5)*b(1)?
If I do it by Singular:

>LIB "ncalg.lib";
>def a=makeUsl(4);
>setring a;
> poly b(1)=x(1)*y(1);
> poly b(5)=x(5)*y(5);
>b(5)* b(1);

The answer will be: x(1)*x(5)*y(1)*y(5)+x(6)*y(1)*y(5)-x(1)*x(5)*y(6)-x(6)*y(6)
which is correct answer but I want the answer to be in the elements of the subalgebra B (in b(1),..., b(20)). The answer suppose to be somthing like this:
b(5)*b(1)= b(1)*b(5)+h(3)*(b(9)-b(2))-h(1)*b(18) .... (not correct answer just to explain the idea)

If I use your idea above, I will get b(5)*b(1)=b(5)*b(1) which is not what I want.

any help please?

Page 1 of 1 All times are UTC + 1 hour [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/