|
D.6.20.16 T_1
Procedure from library sing.lib (see sing_lib).
- Usage:
- T_1(id[,<any>]); id = ideal or poly
- Return:
- T_1(id): of type module/ideal if id is of type ideal/poly.
We call T_1(id) the T_1-module of id. It is a std basis of the
presentation of 1st order deformations of P/id, if P is the basering.
If a second argument is present (of any type) return a list of
3 modules:
[1]= T_1(id)
[2]= generators of normal bundle of id, lifted to P
[3]= module of relations of [2], lifted to P
(note: transpose[3]*[2]=0 mod id)
The list contains all non-easy objects which must be computed
to get T_1(id).
- Display:
- k-dimension of T_1(id) if printlevel >= 0 (default)
- Note:
- T_1(id) itself is usually of minor importance. Nevertheless, from it
all relevant information can be obtained. The most important are
probably vdim(T_1(id)); (which computes the Tjurina number),
hilb(T_1(id)); and kbase(T_1(id)).
If T_1 is called with two arguments, then matrix([2])*(kbase([1]))
represents a basis of 1st order semiuniversal deformation of id
(use proc 'deform', to get this in a direct way).
For a complete intersection the proc Tjurina is faster.
Example:
| LIB "sing.lib";
int p = printlevel;
printlevel = 1;
ring r = 32003,(x,y,z),(c,ds);
ideal i = xy,xz,yz;
module T = T_1(i);
==> // dim T_1 = 3
vdim(T); // Tjurina number = dim_K(T_1), should be 3
==> 3
list L=T_1(i,"");
==> // dim T_1 = 3
module kB = kbase(L[1]);
print(matrix(L[2])*matrix(kB)); // basis of 1st order miniversal deformation
==> 0,0,0,
==> z,0,0,
==> 0,y,z
show(L[2]); // presentation of normal bundle
==> // module, 6 generator(s)
==> [x]
==> [y,z]
==> [0,x,y]
==> [0,z]
==> [0,0,y]
==> [0,0,z]
print(L[3]); // relations of i
==> z, 0,
==> -y,y,
==> 0, -x
print(transpose(matrix(L[3]))*matrix(L[2])); // should be 0 (mod i)
==> xz,0, -xy,-yz,0, 0,
==> 0, yz,0, yz, -xy,-xz
printlevel = p;
|
|