|
D.6.5.1 versal
Procedure from library deform.lib (see deform_lib).
- Usage:
- versal(Fo[,d,any]); Fo=ideal, d=int, any=list
- Compute:
- miniversal deformation of Fo up to degree d (default d=100),
- 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]/Fo extending Qo=Po/Fo,
L[3] = the embedding ring of the versal base space,
L[4] = L[1]/Js extending L[3]/Js.
In the ring L[1] the following matrices are stored:
Js = giving the versal base space (obstructions),
Fs = giving the versal family of Fo,
Rs = giving the lifting of Ro=syz(Fo).
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 = 0;
ring r1 = 0,(x,y,z,u,v),ds;
matrix m[2][4] = x,y,z,u,y,z,u,v;
ideal Fo = minor(m,2);
// cone over rational normal curve of degree 4
list L=versal(Fo);
==> // ready: T_1 and T_2
==> // start computation in degree 2.
==> // ** J is no standard basis
==>
==>
==> // 'versal' returned a list, say L, of four rings. In L[1] are stored:
==> // as matrix Fs: Equations of total space of the miniversal deformation\
,
==> // as matrix Js: Equations of miniversal base space,
==> // as matrix Rs: syzygies of Fs mod Js.
==> // To access these data, type
==> def Px=L[1]; setring Px; print(Fs); print(Js); print(Rs);
==>
==> // L[2] = L[1]/Fo extending Qo=Po/Fo,
==> // L[3] = the embedding ring of the versal base space,
==> // L[4] = L[1]/Js extending L[3]/Js.
==>
L;
==> [1]:
==> // characteristic : 0
==> // number of vars : 9
==> // block 1 : ordering ds
==> // : names A B C D
==> // block 2 : ordering ds
==> // : names x y z u v
==> // block 3 : ordering C
==> [2]:
==> // characteristic : 0
==> // number of vars : 9
==> // block 1 : ordering ds
==> // : names A B C D
==> // block 2 : ordering ds
==> // : names x y z u v
==> // block 3 : ordering C
==> // quotient ring from ideal ...
==> [3]:
==> // characteristic : 0
==> // number of vars : 4
==> // block 1 : ordering ds
==> // : names A B C D
==> // block 2 : ordering C
==> [4]:
==> // characteristic : 0
==> // number of vars : 9
==> // block 1 : ordering ds
==> // : names A B C D
==> // block 2 : ordering ds
==> // : names x y z u v
==> // block 3 : ordering C
==> // quotient ring from ideal ...
def Px=L[1];
setring Px;
// ___ Equations of miniversal base space ___:
Js;"";
==> Js[1,1]=BD
==> Js[1,2]=AD-D2
==> Js[1,3]=-CD
==>
// ___ Equations of miniversal total space ___:
Fs;"";
==> Fs[1,1]=-u2+zv+Bu+Dv
==> Fs[1,2]=-zu+yv-Au+Du
==> Fs[1,3]=-yu+xv+Cu+Dz
==> Fs[1,4]=z2-yu+Az+By
==> Fs[1,5]=yz-xu+Bx-Cz
==> Fs[1,6]=-y2+xz+Ax+Cy
==>
|
|