# FirstOrderDeformation -- The class of all first order deformations of monomial ideals.

## Description

The class of all first order deformations of reduced monomial ideals. Elements represent a big torus (i.e., torus on the variables of a PolynomialRing) graded part of the vector space of first order deformations. By results of Klaus Altmann and Jan Arthur Christophersen the dimension is either 0 or 1 (for manifolds, though this is not required by the implementation).

First order deformations can be created by firstOrderDeformation by specifying a matrix with generators of a reduced monomial ideal and the exponent vector of a Laurent-monomial (i.e., a big torus degree).

Functions producing (sets of) first order deformations:

deform -- Compute the deformations associated to a Stanley-Reisner complex.

deformationsFace -- Compute the deformations associated to a face

trivialDeformations -- Compute the trivial deformations

firstOrderDeformation -- Makes a first order deformation

The data stored in a first order deformation f are

f.gens, a matrix with generators of source of the homomorphisms represented by f.

f.bigTorusDegree, the exponent vector of the Laurent monomial.

f.isHomogeneous, a Boolean indicating if f.degree is zero.

f.relevantGens, a Matrix with those elements of f.gens which are relevant to the deformation f (i.e., those m which have numerator(m*laurent(f)) not in ideal(f.gens)).

f.relationsCoefficients, matrix of relations on coefficients of f. The rows correspond to the generators given in f.relevantGens.

f.parameters, a Matrix whose image is the kernel of the transpose of f.relationsCoefficients extended by zeros for the elements of f.gens not in f.relevantGens. The rows correspond to the generators given in f.gens.

f.dim, the dimension of the f-graded part of the deformation space of ideal f.gens.

f.isNonzero, a Boolean indicating whether f is non-zero.

f.isTrivial, a Boolean indicating whether f is trivial, i.e., denominatorMonomial f has degree 1.

For an example see Example first order deformation.

This data can also be accessed by the methods listed below.

laurent represents f as a Laurent monomial, toHom represents f as a homomorphism.

totalSpace computes the total space of f.

 i1 : R=QQ[x_0..x_4]; i2 : addCokerGrading(R) o2 = | -1 -1 -1 -1 | | 1 0 0 0 | | 0 1 0 0 | | 0 0 1 0 | | 0 0 0 1 | 5 4 o2 : Matrix ZZ <--- ZZ i3 : I=ideal(x_0*x_1,x_1*x_2,x_2*x_3,x_3*x_4,x_4*x_0) o3 = ideal (x x , x x , x x , x x , x x ) 0 1 1 2 2 3 3 4 0 4 o3 : Ideal of R i4 : mg=mingens I; 1 5 o4 : Matrix R <--- R i5 : f=firstOrderDeformation(mg, vector {-1,-1,0,2,0}) 2 x 3 o5 = ---- x x 0 1 o5 : first order deformation space of dimension 1 i6 : degree f o6 = 0 o6 : cokernel | -1 -1 -1 -1 | | 1 0 0 0 | | 0 1 0 0 | | 0 0 1 0 | | 0 0 0 1 | i7 : dim f o7 = 1 i8 : f1=firstOrderDeformation(mg,vector {-1,1,0,0,0}) x 1 o8 = -- x 0 o8 : first order deformation space of dimension 1 i9 : isTrivial f1 o9 = true i10 : f2=firstOrderDeformation(mg,vector {0,-1,-1,2,0}) 2 x 3 o10 = ---- x x 1 2 o10 : first order deformation space of dimension 0 i11 : isNonzero f2 o11 = false

## Caveat

If we run into performance issues some of the redundant data will be removed, so for future compatibility access the data by the corresponding method not via the MutableHashTable.