# VersalDeformations -- calculating versal deformations and local Hilbert schemes

## Description

This package provides tools for calculating tangent and obstruction spaces as well as power series solutions for deformation problems involving isolated singularities and projective schemes, as well as deformations of modules.

A basic description of the package's approach to deformation problems can be found at the documentation node for versalDeformation. For details and mathematical background see

• [DG89] Vincenzo Di Gennaro, A note on deformations of coherent sheaves, Boll. Un. Mat. Ital. B (7) 3 1989.
• [Si01] Arvid Siqveland, The Method of Computing Formal Moduli, Journal of Algebra 241, 2001.
• [St94] Jan Stevens, Computing Versal Deformations, Experimental Mathematics Vol. 4 No. 2, 1994.

The numerous examples presented in the documentation nodes for versalDeformation and localHilbertScheme are classical deformation problems, considered in the following articles:

• [Al97] Klaus Altmann, The versal deformation of an isolated Gorenstein singularity, Inventiones Mathematicae Vol. 128 No. 3, 443-479 1997.
• [CS10] Dustin Cartwright and Bernd Sturmfels, The Hilbert scheme of the diagonal in a product of projective spaces, International Mathematics Research Notices Vol. 2010 No. 9, 1741-1771.
• [PS85] Ragni Piene and Michael Schlessinger, On the Hilbert scheme compactification of the space of twisted cubic curves, American Journal of Mathematics, Vol. 107 No. 4, 761-774, 1985.
• [Pi74] Henry Pinkham, Deformations of algebraic varieties with G_m action, Asterisque 20, 1974.
• [Si01] Arvid Siqveland, The Method of Computing Formal Moduli, Journal of Algebra 241, 2001.

The author thanks Jan Christophersen for helpful hints, especially regarding the computation of $T^2$.

## Certification

Version 1.0 of this package was accepted for publication in volume 4 of The Journal of Software for Algebra and Geometry: Macaulay2 on 2012-06-05, in the article Versal deformations and local Hilbert schemes. That version can be obtained from the journal or from the Macaulay2 source code repository.

## Version

This documentation describes version 3.0 of VersalDeformations.

## Source code

The source code from which this documentation is derived is in the file VersalDeformations.m2.

## Exports

• Functions and commands
• Methods
• "checkComparisonTheorem(Ideal)" -- see checkComparisonTheorem -- checks if the Piene-Schlessinger or Di Dennaro comparison theorem holds
• "checkComparisonTheorem(Matrix)" -- see checkComparisonTheorem -- checks if the Piene-Schlessinger or Di Dennaro comparison theorem holds
• "checkTangentSpace(Ideal)" -- see checkTangentSpace -- checks if dimension of space of sections of the normal bundle agrees with that calculated using normalMatrix
• "checkTangentSpace(Ideal,Matrix)" -- see checkTangentSpace -- checks if dimension of space of sections of the normal bundle agrees with that calculated using normalMatrix
• "checkTangentSpace(Matrix)" -- see checkTangentSpace -- checks if dimension of space of sections of the normal bundle agrees with that calculated using normalMatrix
• "checkTangentSpace(Matrix,Matrix)" -- see checkTangentSpace -- checks if dimension of space of sections of the normal bundle agrees with that calculated using normalMatrix
• "correctDeformation(List,List,List,List)" -- see correctDeformation -- correct lifting to avoid obstructions at next order
• "correctDeformation(Sequence,Matrix,List)" -- see correctDeformation -- correct lifting to avoid obstructions at next order
• "correctionMatrix(Matrix,Matrix)" -- see correctionMatrix -- calculate how first order deformations perturb obstruction vector
• "cotangentCohomology1(Ideal)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology1(InfiniteNumber,ZZ,Ideal)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology1(InfiniteNumber,ZZ,Matrix)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology1(List,Ideal)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology1(List,Matrix)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology1(Matrix)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology1(ZZ,Ideal)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology1(ZZ,InfiniteNumber,Ideal)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology1(ZZ,InfiniteNumber,Matrix)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology1(ZZ,Matrix)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology1(ZZ,ZZ,Ideal)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology1(ZZ,ZZ,Matrix)" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• "cotangentCohomology2(Ideal)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "cotangentCohomology2(InfiniteNumber,ZZ,Ideal)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "cotangentCohomology2(InfiniteNumber,ZZ,Matrix)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "cotangentCohomology2(List,Ideal)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "cotangentCohomology2(List,Matrix)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "cotangentCohomology2(Matrix)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "cotangentCohomology2(ZZ,Ideal)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "cotangentCohomology2(ZZ,InfiniteNumber,Ideal)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "cotangentCohomology2(ZZ,InfiniteNumber,Matrix)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "cotangentCohomology2(ZZ,Matrix)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "cotangentCohomology2(ZZ,ZZ,Ideal)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "cotangentCohomology2(ZZ,ZZ,Matrix)" -- see cotangentCohomology2 -- calculate second cotangent cohomology
• "extMatrix(InfiniteNumber,ZZ,Matrix)" -- see extMatrix -- calculate obstruction space for modules
• "extMatrix(List,Matrix)" -- see extMatrix -- calculate obstruction space for modules
• "extMatrix(Matrix)" -- see extMatrix -- calculate obstruction space for modules
• "extMatrix(ZZ,InfiniteNumber,Matrix)" -- see extMatrix -- calculate obstruction space for modules
• "extMatrix(ZZ,Matrix)" -- see extMatrix -- calculate obstruction space for modules
• "extMatrix(ZZ,ZZ,Matrix)" -- see extMatrix -- calculate obstruction space for modules
• "firstOrderDeformations(Matrix,Matrix,Matrix)" -- see firstOrderDeformations -- use tangent space to create first order peturbations and find relations
• "liftDeformation(List,List,List,List)" -- see liftDeformation -- lift a solution of the deformation equation to the next order
• "localHilbertScheme(Matrix)" -- see localHilbertScheme -- computes a power series representation of the local Hilbert scheme
• "normalMatrix(Ideal)" -- see normalMatrix -- calculate normal module
• "normalMatrix(InfiniteNumber,ZZ,Ideal)" -- see normalMatrix -- calculate normal module
• "normalMatrix(InfiniteNumber,ZZ,Matrix)" -- see normalMatrix -- calculate normal module
• "normalMatrix(List,Ideal)" -- see normalMatrix -- calculate normal module
• "normalMatrix(List,Matrix)" -- see normalMatrix -- calculate normal module
• "normalMatrix(Matrix)" -- see normalMatrix -- calculate normal module
• "normalMatrix(ZZ,Ideal)" -- see normalMatrix -- calculate normal module
• "normalMatrix(ZZ,InfiniteNumber,Ideal)" -- see normalMatrix -- calculate normal module
• "normalMatrix(ZZ,InfiniteNumber,Matrix)" -- see normalMatrix -- calculate normal module
• "normalMatrix(ZZ,Matrix)" -- see normalMatrix -- calculate normal module
• "normalMatrix(ZZ,ZZ,Ideal)" -- see normalMatrix -- calculate normal module
• "normalMatrix(ZZ,ZZ,Matrix)" -- see normalMatrix -- calculate normal module
• versalDeformation(List,List,List,List) -- continues calculation of a versal deformation
• versalDeformation(Matrix) -- computes a power series representation of a versal deformation
• versalDeformation(Matrix,Matrix,Matrix) -- computes a power series representation of a versal deformation
• Symbols
• CacheName -- determines hash table in which to cache solutions to the deformation equation
• CorrectionMatrix -- determines the first order deformations used in correcting liftings
• "ModuleDeformation" -- see cotangentCohomology1 -- calculate first cotangent cohomology
• DefParam -- deformation parameter
• DegreeBound -- determines the degree limit used to compute the tangent cone of obstruction equations
• HighestOrder -- sets the order to which we compute
• PolynomialCheck -- checks if power series solution terminates
• SanityCheck -- checks if lifting solves deformation equation
• SmartLift -- chooses lifting to avoid obstructions at next order
• VersalDeformationResults -- hash table key for cached solutions to the deformation equation
• Other things
• CT -- cotangent cohomology

## For the programmer

The object VersalDeformations is .