Home Online Manual
Top
Back: versal
Forward: lift_kbase
FastBack:
FastForward:
Up: deform_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.6.11.2 mod_versal

Procedure from library deform.lib (see deform_lib).

Usage:
mod_versal(Mo,Io[,d,any]); Io=ideal, Mo=module, d=int, any =list

Compute:
miniversal deformation of coker(Mo) over Qo=Po/Io, Po=basering;

Return:
list L of 4 rings:
L[1] extending the basering Po by new variables given by "A,B,.." (deformation parameters); the new variables precede the old ones, the ordering is the product of "ls" and "ord(Po)"
L[2] = L[1]/Io extending Qo,
L[3] = the embedding ring of the versal base space,
L[4] = L[1]/(Io+Js) ring of the versal deformation of coker(Ms).
In the ring L[1] the following matrices are stored:
Js = giving the versal base space (obstructions),
Fs = giving the versal family of Mo,
Rs = giving the lifting of syzygies Lo=syz(Mo). If d is defined (!=0), it computes up to degree d.
If 'any' is defined and any[1] is no string, interactive version.
Otherwise 'any' is interpreted as a list of predefined strings: "my","param","order","out":
("my" internal prefix, "param" is a letter (e.g. "A") for the name of the first parameter or (e.g. "A(") for index parameter variables, "order" ordering string for ring extension), "out" name of output file).

Note:
printlevel < 0 no additional output,
printlevel >=0,1,2,.. informs you, what is going on,
this proc uses 'execute'.

Example:
 
LIB "deform.lib";
int p = printlevel;
printlevel = 1;
ring  Ro = 0,(x,y),wp(3,4);
ideal Io = x4+y3;
matrix Mo[2][2] = x2,y,-y2,x2;
list L = mod_versal(Mo,Io);
==> // vdim (Ext^2) = 4
==> // vdim (Ext^1) = 4
==> // ready: Ext1 and Ext2
==> // Ext1 is quasi-homogeneous represented: 3,6,1,4
==> // infinitesimal extension
==> x2-Ax-B,   y+Cx+D,
==> -y2+Cxy+Dy,x2+Ax+B
==> // start deg = 2
==> // start deg = 3
==> // start deg = 4
==> // start deg = 5
==> // finished in degree 
==> 5
==> // quasi-homogeneous weights of miniversal base
==> 3,
==> 6,
==> 1,
==> 4 
==> 
==> // 'mod_versal' returned a list, say L, of four rings. In L[2] are stored\
   :
==> //   as matrix Ms: presentation matrix of the deformed module,
==> //   as matrix Ls: lifted syzygies,
==> //   as matrix Js:  Equations of total space of miniversal deformation
==> // To access these data, type
==>      def Qx=L[2]; setring Qx; print(Ms); print(Ls); print(Js);
==> 
def Qx=L[2]; setring Qx;
print(Ms);
==> x2-Ax-B+A2-C3x-3C2D+AC3,y+Cx+D,
==> -y2+Cxy+Dy-C2x2-2CDx-D2,x2+Ax+B
print(Ls);
==> -y-Cx-D,                x2+Ax+B,              
==> x2-Ax-B+A2-C3x-3C2D+AC3,y2-Cxy-Dy+C2x2+2CDx+D2
print(Js);
==> -2AB+A3+3CD2-BC3-3AC2D+A2C3,
==> -B2+A2B+D3-3BC2D+ABC3,      
==> 0,                          
==> 0                           
printlevel = p;
if (defined(Px)) {kill Px,Qx,So;}