# Singular

#### D.6.15.17 T_2

Procedure from library `sing.lib` (see sing_lib).

Usage:
T_2(id[,<any>]); id = ideal

Return:
T_2(id): T_2-module of id . This is a std basis of a presentation of the module of obstructions of R=P/id, if P is the basering. If a second argument is present (of any type) return a list of 4 modules and 1 ideal:
[1]= T_2(id)
[2]= standard basis of id (ideal)
[3]= module of relations of id (=1st syzygy module of id)
[4]= presentation of syz/kos
[5]= relations of Hom_P([3]/kos,R), lifted to P
The list contains all non-easy objects which must be computed to get T_2(id).

Display:
k-dimension of T_2(id) if printlevel >= 0 (default)

Note:
The most important information is probably vdim(T_2(id)). Use proc miniversal to get equations of the miniversal deformation.

Example:
 ```LIB "sing.lib"; int p = printlevel; printlevel = 1; ring r = 32003,(x,y),(c,dp); ideal j = x6-y4,x6y6,x2y4-x5y2; module T = T_2(j); ==> // dim T_2 = 6 vdim(T); ==> 6 hilb(T);""; ==> // 1 t^0 ==> // -1 t^2 ==> // -1 t^3 ==> // 1 t^5 ==> ==> // 1 t^0 ==> // 2 t^1 ==> // 2 t^2 ==> // 1 t^3 ==> // dimension (affine) = 0 ==> // degree (affine) = 6 ==> ring r1 = 0,(x,y,z),dp; ideal id = xy,xz,yz; list L = T_2(id,""); ==> // dim T_2 = 0 vdim(L[1]); // vdim of T_2 ==> 0 print(L[3]); // syzygy module of id ==> -z,-z, ==> y, 0, ==> 0, x printlevel = p; ```