# correctDeformation -- correct lifting to avoid obstructions at next order

## Synopsis

• Usage:
(F,R) = correctDeformation(f,r,g,c)
(F,R) = correctDeformation(S,M,L)
• Inputs:
• Optional inputs:
• SanityCheck => ..., default value true
• Verbose => ..., default value 0, control the verbosity of output
• Outputs:
• F, a list of matrices
• R, a list of matrices

## Description

Each element of the sequence (F,R) is a list of matrices in increasing powers of the deformation parameter. (f,r,g,c) should be as in the output of liftDeformation and (M,L)should be as in the output of correctionMatrix. If the latter are omitted, they are replaced by (M,L)=correctionMatrix(f_1,r_1).

correctDeformation perturbs the last entries of f and r such that if possible, the next invocation of liftDeformation will introduce no new terms in the obstruction equations. If SanityCheck is set to true, as is the default, then the algorithm will check that the corrected perturbation really does solve the deformation equation, and terminate with an error if this is not the case.

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}}; 1 4 o2 : Matrix S <--- S i3 : (f,r,g,c)=localHilbertScheme(F0,Verbose=>0,HighestOrder=>2,SmartLift=>false); Warning: calculation terminated since HighestOrder has been reached. i4 : (liftDeformation(f,r,g,c))_2 o4 = {| t_1t_16 |, | 0 |} | t_9t_16 | | -2t_6t_10t_16+3t_10^2t_16-t_8t_11t_16 | | -t_4t_16 | | t_8t_10t_16+2t_3t_11t_16 | | -2t_14t_16+t_15t_16 | | 4t_10t_12t_16+2t_11t_13t_16-t_8t_16^2 | o4 : List i5 : (F,R)=correctDeformation(f,r,g,c); i6 : (liftDeformation(F,R,g,c))_2 o6 = {| t_1t_16 |, 0} | t_9t_16 | | -t_4t_16 | | -2t_14t_16+t_15t_16 | o6 : List

## Caveat

If the obstruction space is zero, this will generate an error.

## Ways to use correctDeformation :

• "correctDeformation(List,List,List,List)"
• "correctDeformation(Sequence,Matrix,List)"

## For the programmer

The object correctDeformation is .