next | previous | forward | backward | up | top | index | toc | Macaulay2 website
ResidualIntersections :: isLicci

isLicci -- Tests whether an ideal is licci

Synopsis

Description

Computes up to b successive random links, using a regular sequence among the generators of I, and outputs the numbers of generators. If I is licci, such a sequence must terminate in an ideal with c = codim I generators in at most linkageBound I steps.

Every perfect codimension 2 ideal (nxn minors of an (nx(n+1) matrix) is licci, but other ideals of minors are generally not, as illustrated below.

i1 : setRandomSeed 0

o1 = 0
i2 : needsPackage "RandomIdeals"

o2 = RandomIdeals

o2 : Package
i3 : S = ZZ/32003[x_0..x_6]

o3 = S

o3 : PolynomialRing
i4 : L = idealChainFromShelling(S,randomShelling(7,3,8))

o4 = {monomialIdeal (x , x , x ), monomialIdeal (x , x , x x ), monomialIdeal
                      0   1   3                   1   3   0 5                
     ------------------------------------------------------------------------
     (x , x x , x x , x x ), monomialIdeal (x , x x x , x x , x x ),
       3   1 4   0 5   1 5                   3   0 1 4   0 5   1 5  
     ------------------------------------------------------------------------
     monomialIdeal (x , x x x , x x , x x x ), monomialIdeal (x , x x x ,
                     3   0 1 4   1 5   0 4 5                   3   0 1 4 
     ------------------------------------------------------------------------
     x x , x x x x ), monomialIdeal (x , x x x , x x x , x x x , x x x x ),
      1 5   0 4 5 6                   3   0 1 4   0 1 5   1 4 5   0 4 5 6  
     ------------------------------------------------------------------------
     monomialIdeal (x x , x x , x x x , x x x , x x , x x x , x x x x )}
                     0 3   2 3   0 1 4   0 1 5   3 5   1 4 5   0 4 5 6

o4 : List
i5 : apply(L, I-> {linkageBound I, linkageBound(I, UseNormalModule =>true)})

o5 = {{0, 0}, {0, 0}, {6, 2}, {12, 2}, {18, 2}, {24, 2}, {30, 14}, {36, 18}}

o5 : List
i6 : scan(L, I ->print isLicci(I, UseNormalModule => true))
true
true
true
true
true
true
true
false

Caveat

linkageBound I can be very large; linkageBound(I, UseNormalModule => true) can be slow.

See also

Ways to use isLicci :

For the programmer

The object isLicci is a method function with options.