# Singular          #### D.6.15.18 T_12

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

Usage:
T_12(i[,any]); i = ideal

Return:
T_12(i): list of 2 modules:
* standard basis of T_1-module =T_1(i), 1st order deformations
* standard basis of T_2-module =T_2(i), obstructions of R=P/i
If a second argument is present (of any type) return a list of 9 modules, matrices, integers:
= standard basis of T_1-module
= standard basis of T_2-module
= vdim of T_1
= vdim of T_2
= matrix, whose cols present infinitesimal deformations
= matrix, whose cols are generators of relations of i(=syz(i))
= matrix, presenting Hom_P(syz/kos,R), lifted to P
= presentation of T_1-module, no std basis
= presentation of T_2-module, no std basis

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

Note:
Use proc miniversal from deform.lib to get miniversal deformation of i, the list contains all objects used by proc miniversal.

Example:
 ```LIB "sing.lib"; int p = printlevel; printlevel = 1; ring r = 199,(x,y,z,u,v),(c,ws(4,3,2,3,4)); ideal i = xz-y2,yz2-xu,xv-yzu,yu-z3,z2u-yv,zv-u2; //a cyclic quotient singularity list L = T_12(i,1); ==> // dim T_1 = 5 ==> // dim T_2 = 3 print(L); //matrix of infin. deformations ==> 0, 0, 0, 0, 0, ==> yz, y, z2, 0, 0, ==> -z3,-z2,-zu,yz, yu, ==> -z2,-z, -u, 0, 0, ==> zu, u, v, -z2,-zu, ==> 0, 0, 0, u, v printlevel = p; ```

### Misc 