# isLicci -- Tests whether an ideal is licci

## Synopsis

• Usage:
L = isLicci(b,c,I)
L = isLicci(b,I)
L = isLicci I
• Inputs:
• b, an integer, upper bound on how many successive random links to try
• c, an integer, codim of I
• I, an ideal,
• Optional inputs:
• UseNormalModule => ..., default value false, option for linkageBound and isLicci
• Verbose => ..., default value false
• Outputs:
• L, a list, of integers, the numbers of generators of the successive links

## 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.