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.degree*, the small torus (i.e., with respect to the grading added to R by addCokerGrading) degree of f.

*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 |

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.

- simplexRing -- The underlying polynomial ring of a deformation or face or complex.
- target(FirstOrderDeformation) -- The target of a deformation.
- source(FirstOrderDeformation) -- The source of a deformation.
- gensSource -- Generators of the source of a deformation.
- bigTorusDegree -- The big torus degree of a deformation.
- numerator(FirstOrderDeformation) -- The numerator of a deformation as a vector.
- denominator(FirstOrderDeformation) -- The denominator of a deformation as a vector.
- numeratorMonomial -- The numerator monomial of a deformation.
- denominatorMonomial -- The denominator monomial of a deformation.
- degree(FirstOrderDeformation) -- The small torus degree of a deformation.
- grading(FirstOrderDeformation) -- The small torus grading of a deformation.
- isHomogeneous(FirstOrderDeformation) -- Check whether a deformation is homogeneous.
- relationsCoefficients -- Relations between the coefficients of a deformation.
- parameters -- Parameters of a deformation.
- dim(FirstOrderDeformation) -- Compute the dimension of a deformation.
- isNonzero -- Check whether a deformation is non-zero.
- isTrivial -- Check whether a deformation is trivial.
- laurent -- Converts an exponent vector or a deformation into a Laurent monomial.
- toHom -- Convert a first order deformation into a homomorphism.
- totalSpace -- Total space of a deformation.
- trivialDeformations -- Compute the trivial deformations.

- bigTorusDegree(FirstOrderDeformation), see bigTorusDegree -- The big torus degree of a deformation.
- degree(FirstOrderDeformation) -- The small torus degree of a deformation.
- denominator(FirstOrderDeformation) -- The denominator of a deformation as a vector.
- denominatorMonomial(FirstOrderDeformation), see denominatorMonomial -- The denominator monomial of a deformation.
- dim(FirstOrderDeformation) -- Compute the dimension of a deformation.
- FirstOrderDeformation == FirstOrderDeformation -- Compare two first order deformations.
- gensSource(FirstOrderDeformation), see gensSource -- Generators of the source of a deformation.
- grading(FirstOrderDeformation) -- The small torus grading of a deformation.
- isHomogeneous(FirstOrderDeformation) -- Check whether a deformation is homogeneous.
- isNonzero(FirstOrderDeformation), see isNonzero -- Check whether a deformation is non-zero.
- isTrivial(FirstOrderDeformation), see isTrivial -- Check whether a deformation is trivial.
- laurent(FirstOrderDeformation), see laurent -- Converts an exponent vector or a deformation into a Laurent monomial.
- net(FirstOrderDeformation) -- Pretty print for deformations.
- numerator(FirstOrderDeformation) -- The numerator of a deformation as a vector.
- numeratorMonomial(FirstOrderDeformation), see numeratorMonomial -- The numerator monomial of a deformation.
- parameters(FirstOrderDeformation), see parameters -- Parameters of a deformation.
- relationsCoefficients(FirstOrderDeformation), see relationsCoefficients -- Relations between the coefficients of a deformation.
- simplexRing(FirstOrderDeformation) -- The underlying polynomial ring of a deformation or face.
- source(FirstOrderDeformation) -- The source of a deformation.
- target(FirstOrderDeformation) -- The target of a deformation.
- toHom(FirstOrderDeformation), see toHom -- Convert a first order deformation into a homomorphism.
- totalSpace(FirstOrderDeformation,PolynomialRing), see totalSpace -- Total space of a deformation.

The object FirstOrderDeformation is a type, with ancestor classes MutableHashTable < HashTable < Thing.