|  |  D.6.7.2 mod_versal Procedure from librarydeform.lib(see  deform_lib).
 
Example: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'.
 
 |  | 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;}
 | 
 
 |