(F,R,G,C) = versalDeformation(F0)
(F,R,G,C) = versalDeformation(F0,T1,T2)
F0, T1, and T2 should all be matrices over some common polynomial ring.
Each element of the sequence (F,R,G,C) is a list of matrices in increasing powers of the deformation parameter specified by DefParam. Their sums satisfy the deformation equation transpose flatten ((sum F)*(sum R))+(sum C)*(sum G)==0 up to powers of the deformation parameter equal to the length of F. Furthermore, F_0=F0, R_0=gens ker F0, the columns of C_0 are multiples of those of T2 and F_1 consists of first order perturbations corresponding to T1. Thus, if T1 and T2 are tangent and obstruction spaces for some deformation functor, then F and G represent a versal family and equations for a versal base space.
Several options are available to control the termination of the calculation. The calculation will terminate at the very latest after reaching order equal to the option HighestOrder, which has default value 20. If this order is reached, a warning message is generated. If PolynomialCheck is set to true, as is the default, then the algorithm will check if the present solution lifts to infinite order and terminate if this is the case. If SanityCheck is set to true, as is the default, then the algorithm will check that the present solution really does solve the deformation equation, and terminate with an error if this is not the case.
The option Verbose may be used to control the verbosity of the output. Its value should be an integer, with higher values corresponding to more verbose output. Default value is 0.
The option SmartLift is also available, which controls whether the algorithm spends extra time trying to find liftings which introduce no new obstructions at the next highest order. By default, this option is enabled. The option CorrectionMatrix may be used to control which liftings are considered.
After each step of lifting, the solution (F,R,G,C) to the deformation equation is cached. By default, it is stored in F0.cache#VersalDeformationResults but may stored elsewhere by setting the option CacheName to something other than null.
We may use this method to compute local multigraded Hilbert schemes. Here, we consider the Borel fixed ideal for the multigraded Hilbert scheme of the diagonal in a product of three projective planes, see [CS10]:



Local equations for the multigraded Hilbert scheme are


At this point, the multigraded Hilbert scheme has 7 irreducible components:

We may use this method to compute versal deformations of modules. Here, we consider versal deformations for a torsion free rank one module of an E6 singularity, see [Si01]:



The cokernel of f is the module M1. Its versal deformation has a singular curve as its base space:


We may also compute local Quot schemes for modules with zerodimensional support:



We are considering the local Quot scheme for the surjection of S^4 to coker f. Equations for the base space are:

