# versalDeformation(List,List,List,List) -- continues calculation of a versal deformation

## Synopsis

• Function: versalDeformation
• Usage:
(F,R,G,C) = versalDeformation(F0)
(F,R,G,C) = versalDeformation(F0,T1,T2)
• Inputs:
• Optional inputs:
• CacheName => ..., default value null, computes a power series representation of a versal deformation
• CorrectionMatrix => ..., default value auto, computes a power series representation of a versal deformation
• DefParam => ..., default value t, computes a power series representation of a versal deformation
• DegreeBound => ..., default value 0, determines the degree limit used to compute the tangent cone of obstruction equations
• HighestOrder => ..., default value 20, computes a power series representation of a versal deformation
• PolynomialCheck => ..., default value true, computes a power series representation of a versal deformation
• SanityCheck => ..., default value true, computes a power series representation of a versal deformation
• SmartLift => ..., default value true, computes a power series representation of a versal deformation
• 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 the deformation parameter. The input (f,r,g,c) should be a valid solution to the deformation equation output in the form done by versalDeformation(Matrix,Matrix,Matrix). This function continues lifting this solution to higher order. All options described for versalDeformation(Matrix) may be used to the same effect.

After each step of lifting, the solution (F,R,G,C) to the deformation equation is cached. By default, it is stored in (f_0).cache#VersalDeformationResults but may stored elsewhere by setting the option CacheName to something other than null.

This function is especially useful for finding one-parameter families when the versal family is too complicated to calculate.

We may consider the example of the versal deformation of a degree 12 toric Fano threefold:

 i1 : S=QQ[x1,x2,x3,x4,x5,x6,y1,y2,z]; i2 : I=ideal {x1*x4-z^2,x2*x5-z^2,x3*x6-z^2,x1*x3-z*x2,x2*x4-z*x3,x3*x5-z*x4,x4*x6-z*x5,x5*x1-z*x6,x6*x2-z*x1,y1*y2-z^2}; o2 : Ideal of S i3 : F0=gens I; 1 10 o3 : Matrix S <--- S i4 : (F,R,G,C)=versalDeformation(F0,CT^1(0,F0),CT^2(0,F0),HighestOrder=>2); Warning: calculation terminated since HighestOrder has been reached.

We stop the calculation at order 2, since in this case, the solution to the deformation equation calculated by the lifting algorithm will not be polynomial. Equations for the tangent cone at the origin of a versal base space are

 i5 : T=ring first G; i6 : G_0 o6 = | t_19t_22 | | t_20t_23 | | t_15t_22-t_22^2 | | t_16t_23-t_23^2 | 4 1 o6 : Matrix T <--- T

This decomposes into four components:

 i7 : decompose ideal G_0 o7 = {ideal (t , t ), ideal (t , t , t - t ), ideal (t , t , t - 23 22 23 19 15 22 22 20 16 ------------------------------------------------------------------------ t ), ideal (t , t , t - t , t - t )} 23 20 19 16 23 15 22 o7 : List

We now find a one-parameter deformation onto the component of highest dimension:

 i8 : A=(coefficientRing ring F_0)[s]; i9 : sublist=apply(gens T,v->(if v==t_19 or v==t_20 then return v=>s;v=>0)); i10 : f=apply(F,i->sub(i,sublist)); i11 : r=apply(R,i->sub(i,sublist)); i12 : g=apply(G,i->sub(i,sublist)); i13 : c=apply(C,i->sub(i,sublist)); i14 : (F,R,G,C)=versalDeformation(f,r,g,c); i15 : sum F o15 = | (y1z+y2z)s+x1x4-z2 (y1z+y2z)s+x2x5-z2 x3x6-z2 x1x3-x2z ----------------------------------------------------------------------- (x3y1+x3y2)s+x2x4-x3z x3x5-x4z x4x6-x5z (x6y1+x6y2)s+x1x5-x6z x2x6-x1z ----------------------------------------------------------------------- y1y2-z2 | 1 10 o15 : Matrix A <--- A