# SmartLift -- chooses lifting to avoid obstructions at next order

## Description

SmartLift is the name of an optional argument whose value is . If set to true, versalDeformation or localHilbertScheme will utilize the function correctDeformation in order to choose liftings of the deformation equation at each step which, if possible, introduce no higher order terms to the obstruction equations. This may increase the time of calculation, but will hopefully result in nicer equations for the base space. Default value is true

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

With the default setting SmartLift=>true we get very nice equations for the base space:

 i3 : time (F,R,G,C)=localHilbertScheme(F0); -- used 2.13008 seconds 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

With the setting SmartLift=>false the calculation is faster, but the equations are no longer homogeneous:

 i6 : time (F,R,G,C)=localHilbertScheme(F0,SmartLift=>false); -- used 1.54234 seconds i7 : sum G o7 = | t_1t_16 | 2t_5t_10t_11t_16+t_7t_11^2t_16-2t_6t_10t_16+3t_10^2t_16-t_8t_11t_16+ | -t_5t_10^2t_16-2t_7t_10t_11t_16-3t_2t_11^2t_16+t_8t_10t_16+2t_3t_11t | 2t_5t_10t_16^2+2t_7t_11t_16^2+4t_10t_12t_16+2t_11t_13t_16-t_8t_16^2- ------------------------------------------------------------------------ | t_9t_16 | _16-t_4t_16 | 2t_14t_16+t_15t_16 | 4 1 o7 : Matrix (S[t ..t ]) <--- (S[t ..t ]) 1 16 1 16

## Functions with optional argument named SmartLift :

• "localHilbertScheme(...,SmartLift=>...)" -- see localHilbertScheme -- computes a power series representation of the local Hilbert scheme
• "versalDeformation(...,SmartLift=>...)" -- see versalDeformation(Matrix) -- computes a power series representation of a versal deformation

## For the programmer

The object SmartLift is .