# liftDeformation -- lift a solution of the deformation equation to the next order

## Synopsis

• Usage:
(F,R,G,C) = liftDeformation(f,r,g,c)
• Inputs:
• Optional inputs:
• DegreeBound => ..., default value 0, determines the degree limit used to compute the tangent cone of obstruction equations
• SanityCheck => ..., default value true
• Verbose => ..., default value 0, control the verbosity of output
• Outputs:
• F, a list of matrices
• R, a list of matrices
• G, a list of matrices
• C, a list of matrices

## Description

Each element of the sequence (f,r,g,c) is a list of matrices in increasing powers of some deformation parameter. 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.

Each element of the output sequence (F,R,G,C) is a list of matrices in increasing powers of the deformation parameter. The first three matrices of the sequence are gotten from (f,r,g) by appending one matrix to each list in the sequence, and furthermore the columns of C_0 are multiples of those of c_0. The other matrices are chosen to 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, provided that there is such a solution. If SanityCheck is set to true, as is the default, then the algorithm will check that the lifted solution really does solve the deformation equation, and terminate with an error if this is not the case.

For example, consider the cone over the rational normal curve of degree four, see [Pi74]:

 i1 : S=QQ[x_0..x_4]; i2 : I=minors(2,matrix {{x_0,x_1,x_2,x_3},{x_1,x_2,x_3,x_4}}); o2 : Ideal of S i3 : F0=gens I o3 = | -x_1^2+x_0x_2 -x_1x_2+x_0x_3 -x_2^2+x_1x_3 -x_1x_3+x_0x_4 ------------------------------------------------------------------------ -x_2x_3+x_1x_4 -x_3^2+x_2x_4 | 1 6 o3 : Matrix S <--- S i4 : T1=cotangentCohomology1(F0); 6 4 o4 : Matrix S <--- S i5 : R0=gens ker F0; 6 8 o5 : Matrix S <--- S i6 : (f,r)=firstOrderDeformations(F0,R0,T1);

We now lift the first order deformations to second order:

 i7 : A:=(ring f_0)/(image f_0); i8 : T2=cotangentCohomology2(F0); 8 3 o8 : Matrix S <--- S i9 : NT2:=lift(sub(T2,A)%sub(transpose r_0,A),ring f_0); 8 3 o9 : Matrix (S[t ..t ]) <--- (S[t ..t ]) 1 4 1 4 i10 : c={NT2}; i11 : g={}; i12 : (F,R,G,C)=liftDeformation(f,r,g,c); i13 : T=ring first F; i14 : sum F -- equations for family o14 = | x_1t_1+x_0t_2-x_1^2+x_0x_2 -t_1t_3+x_0t_4-x_1x_2+x_0x_3 ----------------------------------------------------------------------- -t_2t_3+t_3^2-t_1t_4-x_3t_1-x_2t_2+x_1t_4-x_2^2+x_1x_3 ----------------------------------------------------------------------- t_2t_3-t_3^2+x_2t_3-x_1x_3+x_0x_4 -x_4t_1-x_3t_2+x_3t_3-x_2x_3+x_1x_4 ----------------------------------------------------------------------- x_4t_3-x_3t_4-x_3^2+x_2x_4 | 1 6 o14 : Matrix T <--- T i15 : sum G -- base equations o15 = | t_2t_3-t_3^2 | | -t_1t_3 | | t_3t_4 | 3 1 o15 : Matrix T <--- T

## Ways to use liftDeformation :

• "liftDeformation(List,List,List,List)"

## For the programmer

The object liftDeformation is .