# cotangentCohomology2 -- calculate second cotangent cohomology

## Description

The matrix F must have a single row. Inputing an ideal instead has the same effect as inputing gens F. The output T2 is a matrix over the same ring as F whose columns form a basis for (a graded piece of) the second cotangent cohomology module of S/I, where S is the ring of F and I is ideal generated by the columns of F. Selection of graded pieces is done in the same manner as with basis. If the selected pieces are infinite dimensional, an error occurs. The optional argument SourceRing may be used in the same fashion as with basis.

This is , which may also be accessed via the ScriptedFunctor CT.

For example, consider the cone over the rational normal curve of degree four, see [Pi74]:

 i1 : S=QQ[x_0..x_4]; i2 : I=minors(2,matrix {{x_0,x_1,x_2,x_3},{x_1,x_2,x_3,x_4}}); o2 : Ideal of S i3 : T2=cotangentCohomology2(I) o3 = {-3} | 0 0 0 | {-3} | 0 0 0 | {-3} | x_3 x_4 0 | {-3} | x_2 x_3 0 | {-3} | x_1 x_2 0 | {-3} | -x_4 0 x_3 | {-3} | 0 x_4 x_2 | {-3} | 0 x_3 x_1 | 8 3 o3 : Matrix S <--- S

The second cotangent cohomology module is three dimensional. Thus, the base space of the versal deformation is cut out by (at most) three equations.

We also consider the graded example of a degenerate twisted cubic curve, see [PS85]:

 i4 : S=QQ[x,y,z,w]; i5 : F=matrix {{x*z,y*z,z^2,x^3}} o5 = | xz yz z2 x3 | 1 4 o5 : Matrix S <--- S i6 : T2=cotangentCohomology2(0,F) o6 = {-3} | zw2 xw2 0 0 | {-3} | 0 0 0 x2w | {-3} | 0 0 zw2 0 | {-4} | 0 0 0 0 | 4 4 o6 : Matrix S <--- S

The degree zero component of the second cotangent cohomology module is four dimensional. Thus the Hilbert scheme is (locally analytically) cut out by (at most) four equations.

## Ways to use cotangentCohomology2 :

• "cotangentCohomology2(Ideal)"
• "cotangentCohomology2(InfiniteNumber,ZZ,Ideal)"
• "cotangentCohomology2(InfiniteNumber,ZZ,Matrix)"
• "cotangentCohomology2(List,Ideal)"
• "cotangentCohomology2(List,Matrix)"
• "cotangentCohomology2(Matrix)"
• "cotangentCohomology2(ZZ,Ideal)"
• "cotangentCohomology2(ZZ,InfiniteNumber,Ideal)"
• "cotangentCohomology2(ZZ,InfiniteNumber,Matrix)"
• "cotangentCohomology2(ZZ,Matrix)"
• "cotangentCohomology2(ZZ,ZZ,Ideal)"
• "cotangentCohomology2(ZZ,ZZ,Matrix)"

## For the programmer

The object cotangentCohomology2 is .