Macaulay2 » Documentation
Packages » VersalDeformations :: VersalDeformations
next | previous | forward | backward | up | index | toc

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. As of version 4.0, the package also computes nested versal deformations for pairs consisting of a scheme and subscheme, or module and a quotient module.

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

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

The author thanks Jan Christophersen and Joachim Jelisiejew for helpful suggestions.

Author

Certification a gold star

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 (DOI: 10.2140/jsag.2012.4.12). That version can be obtained from the journal.

Version

This documentation describes version 4.0 of VersalDeformations, released July 9, 2025.

Citation

If you have used this package in your research, please cite it as follows:

@misc{VersalDeformationsSource,
  title = {{VersalDeformations: versal deformations and local Hilbert schemes. Version~4.0}},
  author = {Nathan Ilten},
  howpublished = {A \emph{Macaulay2} package available at
    \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/packages}}
}

@article{VersalDeformationsArticle,
  title = {{Versal deformations and local Hilbert schemes}},
  author = {Nathan Ilten},
  journal = {The Journal of Software for Algebra and Geometry: Macaulay2},
  volume = {4},
  year = {2012},
}

Exports

  • Types
  • 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
    • families(NestedDeformation) -- see families -- outputs the perturbed families of a NestedDeformation
    • firstOrderDeformations(Matrix,Matrix,Matrix) -- see firstOrderDeformations -- use tangent space to create first order perturbations and find relations
    • isPolynomial(List,List,List,List) -- see isPolynomial -- checks if a deformation lifts to arbitrary order
    • isPolynomial(NestedDeformation) -- see isPolynomial -- checks if a deformation lifts to arbitrary order
    • liftDeformation(List,List,List,List) -- lift a solution of the deformation equation to the next order
    • liftDeformation(NestedDeformation) -- lift a nested deformation to the next order
    • localHilbertScheme(Matrix) -- see localHilbertScheme -- computes a power series representation of the local Hilbert scheme
    • nestedHilbertScheme(Matrix,Matrix) -- see nestedHilbertScheme -- computes a nested Hilbert scheme of a pair
    • nestedObstruction(InfiniteNumber,ZZ,Matrix,Matrix) -- see nestedObstruction -- calculate secondary obstruction space for nested deformations
    • nestedObstruction(List,Matrix,Matrix) -- see nestedObstruction -- calculate secondary obstruction space for nested deformations
    • nestedObstruction(Matrix,Matrix) -- see nestedObstruction -- calculate secondary obstruction space for nested deformations
    • nestedObstruction(ZZ,InfiniteNumber,Matrix,Matrix) -- see nestedObstruction -- calculate secondary obstruction space for nested deformations
    • nestedObstruction(ZZ,Matrix,Matrix) -- see nestedObstruction -- calculate secondary obstruction space for nested deformations
    • nestedObstruction(ZZ,ZZ,Matrix,Matrix) -- see nestedObstruction -- calculate secondary obstruction space for nested deformations
    • nestedTangent(InfiniteNumber,ZZ,Matrix,Matrix) -- see nestedTangent -- calculate first order deformations for nested deformations
    • nestedTangent(List,Matrix,Matrix) -- see nestedTangent -- calculate first order deformations for nested deformations
    • nestedTangent(Matrix,Matrix) -- see nestedTangent -- calculate first order deformations for nested deformations
    • nestedTangent(ZZ,InfiniteNumber,Matrix,Matrix) -- see nestedTangent -- calculate first order deformations for nested deformations
    • nestedTangent(ZZ,Matrix,Matrix) -- see nestedTangent -- calculate first order deformations for nested deformations
    • nestedTangent(ZZ,ZZ,Matrix,Matrix) -- see nestedTangent -- calculate first order deformations for nested deformations
    • nestedVersalDeformation(Matrix,Matrix) -- see nestedVersalDeformation -- computes a nested VersalDeformation of a pair
    • 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
    • obstructions(NestedDeformation) -- see obstructions -- outputs the obstruction equations of a NestedDeformation
    • sanityCheck(ZZ,List) -- see sanityCheck -- checks if deformation data satisfies the deformation equation at a certain order
    • sanityCheck(ZZ,NestedDeformation) -- see sanityCheck -- checks if deformation data satisfies the deformation equation at a certain order
    • setupNestedDeformation(List) -- see setupNestedDeformation -- create a first order NestedDeformation from tangent directions and obstruction spaces
    • 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
    • versalDeformation(NestedDeformation) -- continues calculation 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
    • DefParamX -- see DefParam -- deformation parameter
    • DefParamY -- see 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
    • IncludeTrivial -- see nestedVersalDeformation -- computes a nested VersalDeformation of a pair
    • 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 a package, defined in VersalDeformations.m2.


The source of this document is in VersalDeformations.m2:879:0.