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

D-modules definition
https://www.singular.uni-kl.de/forum/viewtopic.php?f=10&t=1871
Page 1 of 1

Author:  etienne [ Wed Oct 13, 2010 11:00 am ]
Post subject:  D-modules definition

Hello,

I am starting with singular, I want to define the D-module
D=C[q1,q1^-1,q2,q2^-1]<dq1,dq2>
and then to compute a Groebner basis of some ideals.
Looking to the onlie manual, I could define D=C[q1,q2]<dq1,dq2>, but I could not define the one with q1^-1 and q2^-1.
I try with localization but I could not do it correctly.

thank you for an answer,

Etienne

Author:  levandov [ Sun Nov 14, 2010 5:05 am ]
Post subject:  Re: D-modules definition

Salut Etienne,

at first: yes, it is possible to define this ring. However, I would like to know more details about
computations you like to perform.

Denoting X = x^{-1}, we obtain the following noncommutative relation with the differential operator d (stands for d/dx): d*X = X*d - X^2 or, by reverting the order of variables,
X*d = d*X + X^2. Since we're going to have a G-algebra (in order to compute with PLURAL), the ordering condition X*d > X^2 must be satisfied, which is equivalent in our case to d>X.
Thus, according to SINGULAR convention, in the linear pre-ordering of variables, used in the ring definition, d must precede X. But the original x can be placed where you want it to have. Here's an example for K[x,x^{-1},d]:
Code:
ring r = 0,(x,d,X),dp;
matrix @D[3][3];
@D[1,2]=1;
@D[2,3]=X^2;
def R = nc_algebra(1,@D); setring R;

by executing "R;" you will get the following information on the ring we just set up:
Code:
//   characteristic : 0
//   number of vars : 3
//        block   1 : ordering dp
//                  : names    x d X
//        block   2 : ordering C
//   noncommutative relations:
//    dx=xd+1
//    Xd=dX+X2

hence, as we can see, the relations are fine. Let's ensure that non-degeneracy conditions hold (well, we see that they do, but this check is helpful anyway):
Code:
LIB "nctools.lib";
ncdond();

Since it (as expected) returns 0, we're fine. But wait a second - what about relations x*X=X*x=1 ? We have not forgotten them, and since x and X commute, according to our definition, we can define a two sided ideal, generated by x*X-1 and pass to the factor algebra by the latter, as the following code illustrates:
Code:
ideal I = x*X-1;
qring Q = twostd(I);

By typing "Q;" we get the following description of K[x,x^{-1}]<d> as GR-algebra:
Code:
//   characteristic : 0
//   number of vars : 3
//        block   1 : ordering dp
//                  : names    x d X
//        block   2 : ordering C
//   noncommutative relations:
//    dx=xd+1
//    Xd=dX+X2
// quotient ring from ideal
_[1]=xX-1


So, it is the ring we want. Let's compute in it:
Code:
ideal A = x*d-1, d^2;
std(A);

what gives us d-X back, what's correct. C'est bon!

Author:  levandov [ Sun Nov 14, 2010 5:09 am ]
Post subject:  Re: D-modules definition. YET another way

Indeed, we can order variables as d,x,X (remember, we HAVE to put X after d, but as for x, we have choice). Let's do an example of which:
Code:
ring r = 0,(d,x,X),dp;
matrix @D[3][3];
@D[1,2]=-1;
@D[1,3]=X^2;
def R = nc_algebra(1,@D); setring R;
ideal I = x*X-1;
qring Q = twostd(I);
Q;
ideal A = x*d-1, d^2;
std(A);


AND finally, for two variables, the code looks as follows:
Code:
ring r = 0,(dx,dy,x,y,X,Y),dp;
matrix @D[6][6];
@D[1,3]=-1;@D[2,4]=-1;
@D[1,5]=X^2;@D[2,6]=Y^2;
def R = nc_algebra(1,@D); setring R;
ideal I = x*X-1, y*Y-1;
qring Q = twostd(I);
Q;


And an example works as expected:
Code:
ideal A = x*dx-1, x^2*dy^2, y^2*dy - x^2*dx^2;
std(A);


Greetings, Viktor

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