This is the main interface for the package
ModuleDeformations. It has two signatures: one for the absolute case and one for the general case. Both versions return a pair
(S,M)where
S is a ring representing the base space of the deformation and
M is a module representing the deformation module.
The module
M is not defined over the product
S × Y but instead over the polynomial ring in which
S × Y is defined. Attempting to construct
M over
S × Y may result in computational blowup in certain cases. Reducing
M modulo the defining equations of
S × Y gives the deformation module itself.
The function
deformMCMModule returns an error if the given module
M0 is not maximal Cohen-Macaulay, if it is not defined over a hypersurface, or if its module
Ext1(M0,M0) of first-order deformations is not finite-dimensional as a vector space. If
M0 is free, then
deformMCMModule returns a pair with a trivial base space
S and a free module
M generated in the same degrees as
M0.
The parameters of the base space, that is, the coordinates over which
S is defined, are labelled
xi_1 through
xi_d, where
d is the dimension as a vector space of the module of first-order deformations of the module being deformed.
The function
deformMCMModule computes a deformation only up to a degree limit given by the optional parameter
DegreeLimit, whose default value is 10. The procedure is optimized so that specifying too large a degree limit should not result in substantial computational difficulties in most cases.