# Singular

#### D.6.15.14 Tjurina

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

Usage:
Tjurina(id[,<any>]); id=ideal or poly

Assume:
id=ICIS (isolated complete intersection singularity)

Return:
standard basis of Tjurina-module of id,
of type module if id=ideal, resp. of type ideal if id=poly. If a second argument is present (of any type) return a list:
[1] = Tjurina number,
[2] = k-basis of miniversal deformation,
[3] = SB of Tjurina module,
[4] = Tjurina module

Display:
Tjurina number if printlevel >= 0 (default)

Note:
Tjurina number = -1 implies that id is not an ICIS

Example:
 ```LIB "sing.lib"; int p = printlevel; printlevel = 1; ring r = 0,(x,y,z),ds; poly f = x5+y6+z7+xyz; // singularity T[5,6,7] list T = Tjurina(f,""); ==> // Tjurina number = 16 show(T[1]); // Tjurina number, should be 16 ==> // int, size 1 ==> 16 show(T[2]); // basis of miniversal deformation ==> // ideal, 16 generator(s) ==> z6, ==> z5, ==> z4, ==> z3, ==> z2, ==> z, ==> y5, ==> y4, ==> y3, ==> y2, ==> y, ==> x4, ==> x3, ==> x2, ==> x, ==> 1 show(T[3]); // SB of Tjurina ideal ==> // ideal, 6 generator(s) ==> xy+7z6, ==> xz+6y5, ==> yz+5x4, ==> 5x5-6y6, ==> y6, ==> z7 show(T[4]); ""; // Tjurina ideal ==> // ideal, 4 generator(s) ==> yz+5x4, ==> xz+6y5, ==> xy+7z6, ==> xyz+x5+y6+z7 ==> ideal j = x2+y2+z2,x2+2y2+3z2; show(kbase(Tjurina(j))); // basis of miniversal deformation ==> // Tjurina number = 5 ==> // module, 5 generator(s) ==> [z] ==> [y] ==> [x] ==> [1] ==> [0,1] hilb(Tjurina(j)); // Hilbert series of Tjurina module ==> // Tjurina number = 5 ==> // 2 t^0 ==> // -3 t^1 ==> // -3 t^2 ==> // 7 t^3 ==> // -3 t^4 ==> ==> // 2 t^0 ==> // 3 t^1 ==> // dimension (local) = 0 ==> // multiplicity = 5 printlevel = p; ```