sing.lib
resp. deform.lib
contain procedures
to compute the miniversal (= semiuniversal deformation) of an
isolated complete intersection singularity resp. arbitrary isolated
singularity.
deform
in sing.lib
returns a matrix whose columns
represent a basis of 1-st order miniversal deformations.
versal
in deform.lib
computes a formal
miniversal deformation up to a certain order which can be
prescribed by the user. For a complete intersection the 1-st order
part is already miniversal.
versal
extends the basering to a new ring with
additional deformation parameters which contains the equations for the
miniversal base space and the miniversal total space.
printlevel=2;
before running versal
, some
intermediate results are shown. This is useful since versal
is already complicated and since it might run quite long on more
complicated examples. (type help versal;
)
We give three examples, the first being a hypersurface, the second a complete intersection, the third no complete intersection and compute in each of the cases the miniversal deformation:
LIB "deform.lib"; ring R=32003,(x,y,z),ds; //---------------------------------------------------- // hypersurface case (from series T[p,q,r]): int p,q,r = 3,3,4; poly f = x^p+y^q+z^r+xyz; print(deform(f)); ==> z3,z2,yz,xz,z,y,x,1 // the miniversal deformation of f=0 is the projection from the // miniversal total space to the miniversal base space: // { (A,B,C,D,E,F,G,H,x,y,z) | x3+y3+xyz+z4+A+Bx+Cxz+Dy+Eyz+Fz+Gz2+Hz3 =0 } // --> { (A,B,C,D,E,F,G,H) } //---------------------------------------------------- // complete intersection case (from series P[k,l]): int k,l =3,2; ideal j=xy,x^k+y^l+z2; print(deform(j)); ==> 0,0, 0,0,z,1, ==> y,x2,x,1,0,0 versal(j); // using default names ==> // smooth base space ==> // ready: T1 and T2 ==> ==> // Result belongs to ring Px. ==> // Equations of total space of miniversal deformation are ==> // given by Fs, equations of miniversal base space by Js. ==> // Make Px the basering and list objects defined in Px by typing: ==> setring Px; show(Px); ==> listvar(matrix); ==> // NOTE: rings Qx, Px, So are alive! ==> // (use 'kill_rings("");' to remove) setring Px; show(Px); // show is a procedure from inout.lib ==> // ring: (32003),(A,B,C,D,E,F,x,y,z),(ds(6),ds(3),C); ==> // minpoly = 0 listvar(ideal); // ___ Equations of miniversal base space ___: Js; ==> // ___ Equations of miniversal total space ___: Fs; ==> Fs[1,1]=xy+Ez+F ==> Fs[1,2]=y2+z2+x3+Ay+Bx2+Cx+D // the miniversal deformation of V(j) is the projection from the // miniversal total space to the miniversal base space: // { (A,B,C,D,E,F,x,y,z) | xy+A+Bz=0, y2+z2+x3+C+Dx+Ex2+Fy=0 } // --> { (A,B,C,D,E,F) } //---------------------------------------------------- // general case (cone over rational normal curve of degree 4): ring r1=0,(x,y,z,u,v),ds; matrix m[2][4]=x,y,z,u,y,z,u,v; ideal i=minor(m,2); // 2x2 minors of matrix m int time=timer; // Def_r is the name of the miniversal base space with // parameters A(1),...,A(4) versal(i,0,"Def_r","A("); ==> // ready: T1 and T2 ==> ==> // Result belongs to ring Def_rPx. ==> // Equations of total space of miniversal deformation are ==> // given by Fs, equations of miniversal base space by Js. ==> // Make Def_rPx the basering and list objects defined in Def_rPx by t ==> yping: ==> setring Def_rPx; show(Def_rPx); ==> listvar(matrix); ==> // NOTE: rings Def_rQx, Def_rPx, Def_rSo are alive! ==> // (use 'kill_rings("Def_r");' to remove) "// used time:",timer-time,"sec"; // time for miniversal ==> // used time: 0 sec // the miniversal deformation of V(i) is the projection from the // miniversal total space to the miniversal base space: // { (A(1..4),x,y,z,u,v) | // -y^2+x*z+A(2)*x-A(3)*y=0, -y*z+x*u-A(1)*x-A(3)*z=0, // -y*u+x*v-A(3)*u-A(4)*z=0, -z^2+y*u-A(1)*y-A(2)*z=0, // -z*u+y*v-A(2)*u-A(4)*u=0, -u^2+z*v+A(1)*u-A(4)*v=0 } // --> { A(1..4) | // -A(1)*A(4) = A(3)*A(4) = -A(2)*A(4)-A(4)^2 = 0 } //----------------------------------------------------