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

localHilbertScheme -- computes a power series representation of the local Hilbert scheme



F0 should be a matrix with homogeneous entries over some polynomial ring with one row.

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 ((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, C_0=T^2(0,F_0) and F_1 consists of first order perturbations corresponding to normalMatrix(0,F0). Thus, F and G represent a universal family and local analytic equations for the Hilbert scheme.

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.

For example, consider a degenerate twisted cubic curve, see [PS85]:

i1 : S=QQ[x,y,z,w];
i2 : F0=matrix {{x*z,y*z,z^2,x^3}}

o2 = | xz yz z2 x3 |

             1      4
o2 : Matrix S  <-- S
i3 : (F,R,G,C)=localHilbertScheme(F0,Verbose=>2);
Calculating first order deformations and obstruction space
Calculating first order relations
Calculating standard expressions for obstructions
Starting lifting
Order 2
Order 3
Order 4
Order 5
Order 6
Order 7
Solution is polynomial

Local equations for the Hilbert scheme are thus given by

i4 : T=ring first G;
i5 : sum G

o5 = | t_1t_16             |
     | t_9t_16             |
     | -t_4t_16            |
     | -2t_14t_16+t_15t_16 |

             4      1
o5 : Matrix T  <-- T


The output may not be the local Hilbert scheme if standard comparison theorems do not hold for the ideal generated by FO. This may be tested using checkComparisonTheorem or checkTangentSpace.

Ways to use localHilbertScheme :

For the programmer

The object localHilbertScheme is a method function with options.