next | previous | forward | backward | up | top | index | toc | Macaulay2 website
VersalDeformations :: SmartLift

SmartLift -- chooses lifting to avoid obstructions at next order

Description

SmartLift is the name of an optional argument whose value is a Boolean value. 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 0.729599 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 0.429937 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 :

For the programmer

The object SmartLift is a symbol.