Home Online Manual
Top
Back: GND_lib
Forward: gradedModules_lib
FastBack:
FastForward:
Up: GND_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.15.5.1 desingularization

Procedure from library GND.lib (see GND_lib).

Usage :
Returns as output a General Neron Desingularization as in the Paper http://arxiv.org/abs/1508.05511

Example:
 
LIB "GND.lib";
//Example 1
ring All = 0,(a1,a2,a3,x1,x2,x3,Y1,Y2,Y3),dp;
int nra = 3;
int nrx = 3;
int nry = 3;
ideal xid = x2^3-x3^2,x1^3-x3^2;
ideal yid = Y1^3-Y2^3;
ideal aid = a3^2-a1*a2;
poly y;
int i;
for(i=0;i<=30;i++)
{
y = y + a1*x3^i/factorial(i);
}
for(i=31;i<=50;i++)
{
y = y + a2*x3^i/factorial(i);
}
ideal f = a3*x1,a3*x2,y;
desingularization(All, nra,nrx,nry,xid,yid,aid,f);
==> h = 
==> h[1]=Y1+(x1^3*x3^6)*T3+(-a3*x1)
==> h[2]=Y2+(-x1^2*x3^6)*T1+(x1^2*x2*x3^6)*T3+(-a3*x2)
==> h[3]=Y3+(x1^3*x3^6)*T2+(-a1*x3^7-7*a1*x3^6-42*a1*x3^5-210*a1*x3^4-840*a1*\
   x3^3-2520*a1*x3^2-5040*a1*x3-5040*a1)/5040
==> h[4]=Y4+(-x1^2*x3^4)*T4+1
// With debug output
desingularization(All, nra,nrx,nry,xid,yid,aid,f,"debug");
==> Computing the kernel:
==> ker[1]=x2*Y1-x1*Y2
==> ker[2]=Y1^3-Y2^3
==> ker[3]=x1*Y1^2-x2*Y2^2
==> ker[4]=x1^2*Y1-x2^2*Y2
==> ker[5]=x2^3-x3^2
==> ker[6]=x1^3-x3^2
==> ker[7]=x1*x2^2*Y2-x3^2*Y1
==> ker[8]=x1^2*x2*Y2^2-x3^2*Y1^2
==> This is Plist:
==> [1]:
==>    -x1*x3^2
==> [2]:
==>    x3^2
==> [3]:
==>    -x1
==> [4]:
==>    _[1]=x2*Y1-x1*Y2
==> [5]:
==>    [1]:
==>       1
==> The minor comes from these vars:
==> [1]:
==>    1
==> [2]:
==>    2
==> P' =  -x1*x3^2
==> v(P'):
==> -x1*x3^2
==> d' = x1*x3^2
==> z = -1
==> P is constant (no Y), so d = d' = P = P'
==> P = P' =  -x1*x3^2
==> d =  -x1*x3^2
==> vidjet:
==> vidjet[1]=x1
==> vidjet[2]=x2
==> vidjet[3]=x3
==> vidjet[4]=(a3)*x1
==> vidjet[5]=(a3)*x2
==> vidjet[6]=(a1)/5040*x3^7+(a1)/720*x3^6+(a1)/120*x3^5+(a1)/24*x3^4+(a1)/6*\
   x3^3+(a1)/2*x3^2+(a1)*x3+(a1)
==> vidjet[7]=-1
==> Py = -x1*x3^2
==> This is C:
==> // coefficients: QQ
==> // number of vars : 5
==> //        block   1 : ordering dp
==> //                  : names    a1 a3 x1 x2 x3
==> //        block   2 : ordering C
==> // quotient ring from ideal
==> _[1]=x2^3-x3^2
==> _[2]=x1^3-x3^2
==> _[3]=x3^8
==> This is D:
==> // coefficients: QQ
==> // number of vars : 5
==> //        block   1 : ordering dp
==> //                  : names    a1 a3 x1 x2 x3
==> //        block   2 : ordering C
==> // quotient ring from ideal
==> _[1]=x2^3-x3^2
==> _[2]=x1^3-x3^2
==> This is the minor bordered matrix (H)
==> (x2),(-x1),0,0,        
==> 0,   0,    1,0,        
==> 1,   0,    0,0,        
==> 0,   0,    0,(-x1*x3^2)
==> This is G: 
==> 0,              0,               (x1^2*x3^4)*Y4^2, 0,             
==> (-x1*x3^4)*Y4^2,0,               (x1*x2*x3^4)*Y4^2,0,             
==> 0,              (x1^2*x3^4)*Y4^2,0,                0,             
==> 0,              0,               0,                (-x1*x3^2)*Y4^2
==> G[1,1]=0
==> G[1,2]=0
==> G[1,3]=(x1^2*x3^4)*Y4^2
==> G[1,4]=0
==> G[2,1]=(-x1*x3^4)*Y4^2
==> G[2,2]=0
==> G[2,3]=(x1*x2*x3^4)*Y4^2
==> G[2,4]=0
==> G[3,1]=0
==> G[3,2]=(x1^2*x3^4)*Y4^2
==> G[3,3]=0
==> G[3,4]=0
==> G[4,1]=0
==> G[4,2]=0
==> G[4,3]=0
==> G[4,4]=(-x1*x3^2)*Y4^2
==> s = 1
==> This is cc
==> cc[1]=0
==> cc[2]=0
==> h = 
==> h[1]=Y1+(x1^3*x3^6)*T3+(-a3*x1)
==> h[2]=Y2+(-x1^2*x3^6)*T1+(x1^2*x2*x3^6)*T3+(-a3*x2)
==> h[3]=Y3+(x1^3*x3^6)*T2+(-a1*x3^7-7*a1*x3^6-42*a1*x3^5-210*a1*x3^4-840*a1*\
   x3^3-2520*a1*x3^2-5040*a1*x3-5040*a1)/5040
==> h[4]=Y4+(-x1^2*x3^4)*T4+1
==> m = 1
==> s^m = 1
==> QT =
==> QT[1]=0
==> QT[2]=0
==> f =
==> f[1]=(x2)*Y1+(-x1)*Y2
==> f[2]=(-x1*x3^2)*Y4+(x1*x3^2)
==> g = 
==> g[1]=T1
==> g[2]=T2
kill All,nra,nrx,nry,i;
//Example 4
ring All = 0,(a1,a2,a3,a4,x,Y1,Y2,Y3),dp;
int nra = 4;
int nrx = 1;
int nry = 3;
ideal xid = 0;
ideal yid = Y1^3-Y2^3;
ideal aid = a3^2-a1*a2,a4^2+a4+1;
poly y;
int i;
for(i=0;i<=30;i++)
{
y = y + a1*x3^i/factorial(i);
}
for(i=31;i<=50;i++)
{
y = y + a2*x3^i/factorial(i);
}
ideal f = a3*x,a3*a4*x,y;
desingularization(All, nra,nrx,nry,xid,yid,aid,f);
==> h = 
==> _[1]=Y1+(-4*a3^2*a4^2*x^6-4*a3^2*a4*x^6-a3^2*x^6-8*a3*a4*x^6-4*a3*x^6-4*x\
   ^6)/(4*a4^2+4*a4+1)*T3+(-a3*x)
==> _[2]=Y2+(-2*a3*a4*x^5-a3*x^5-2*x^5)/(2*a4+1)*T1+(8*a3^2*a4^2*x^6+8*a3^2*a\
   4*x^6+2*a3^2*x^6+10*a3*a4*x^6+5*a3*x^6+2*x^6)/(4*a4^2+4*a4+1)*T3+(-x)/(2*\
   a4+1)
==> _[3]=Y3+(-4*a3^2*a4^2*x^6-4*a3^2*a4*x^6-a3^2*x^6-8*a3*a4*x^6-4*a3*x^6-4*x\
   ^6)/(4*a4^2+4*a4+1)*T2+(-a1*x^3-a1)
==> _[4]=Y4+(2*x^5)*T1+(-3*a3*x^6)*T3+(-2*a3*a4*x^5-a3*x^5-2*x^5)/(2*a4+1)*T4\
   +(-x)