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

Problem interpreting facWeyl output
https://www.singular.uni-kl.de/forum/viewtopic.php?f=10&t=2779
Page 1 of 1

Author:  matze235 [ Wed Aug 29, 2018 11:56 am ]
Post subject:  Problem interpreting facWeyl output

Hi all,

apologies for asking a possibly stupid question about facWeyl. The problem might be my incomplete understanding of Algebra.

I don't understand why facWeyl does not factor x1*d1 + x1* d1 * x2* d2 + x2* d2 + 1 into (1+ x1*d1)*(1+x2*d2). Or maybe it does but I don't understand the way facWeyl tells me this.

Code:
LIB "ncfactor.lib";
ring R = 0,(x1,x2,d1,d2),dp;
matrix C[4][4] = 1,1,1,1,
1,1,1,1,
1,1,1,1,
1,1,1,1;
matrix D[4][4] = 0,0,1,0,
0,0,0,1,
-1,0,0,0,
0,-1,0,0;
def r = nc_algebra(C,D);
setring(r);
poly h = x1*d1 + x1* d1 * x2* d2 + x2* d2 + 1;
facWeyl(h);
[1]:
   [1]:
1
   [2]:
      d1
   [3]:
      d2
   [4]:
      x1
   [5]:
      x2
[2]:
   [1]:
1
   [2]:
      d1
   [3]:
      d2
   [4]:
      x2
   [5]:
      x1
[3]:
   [1]:
1
   [2]:
      d1
   [3]:
      x1
   [4]:
      d2
   [5]:
      x2
[4]:
   [1]:
1
   [2]:
      d2
   [3]:
      d1
   [4]:
      x1
   [5]:
      x2
[5]:
   [1]:
1
   [2]:
      d2
   [3]:
      d1
   [4]:
      x2
   [5]:
      x1
[6]:
   [1]:
1
   [2]:
      d2
   [3]:
      x2
   [4]:
      d1
   [5]:
      x1


Thanks in advance for any help.

Best regards,
Matthias

Author:  levandov [ Fri Jan 17, 2020 6:52 pm ]
Post subject:  Re: Problem interpreting facWeyl output

Hello Matthias,

the answer to you main question
"why facWeyl does not factor x1*d1 + x1* d1 * x2* d2 + x2* d2 + 1 into (1+ x1*d1)*(1+x2*d2)."
is as follows:
"because (1+ x1*d1) = d1*x1 is reducible".

Some suggestions:
1) use Weyl(); procedure from LIB "nctools.lib"; to set up Weyl algebras quickly
2) use just ncfactor(h); for any kind of factorization
3) while using ncalgebra as you did, there's a shortcut
ncalgebra(1,D); since the matrix C does not contain other coefficients than 1.

In more details: ad (1) and (2):
In case you want to work with the second Weyl algebra, the ring must be defined as follows:
Code:
LIB "ncfactor.lib";
LIB "nctools.lib";
ring R = 0,(x1,x2,d1,d2),dp;
def A2 = Weyl(); setring A2;
A2; // prints correctly the non-commutative relations between generators
poly h = x1*d1 + x1* d1 * x2* d2 + x2* d2 + 1;
ncfactor(h); 


Regards,
Viktor Levandovskyy

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