# multiplicitySequence -- the multiplicity sequence of an ideal

## Synopsis

• Usage:
multiplicitySequence I
multiplicitySequence(i, I)
• Inputs:
• Optional inputs:
• DoSaturate => ..., default value false, the Hilbert sequence of a multi-graded module
• minTerms => ..., default value -1
• numCandidates => ..., default value 3
• Strategy => ..., default value grGr
• Outputs:
• , the multiplicity sequence of I

## Description

Given a (graded) ideal I, this function computes the multiplicity sequence as defined in [0]. Specifying Strategy => "genElts" will use the general element method as in [4]: one can specify the "complexity" of the general elements by using the option minTerms.

 i1 : R = QQ[x,y,z] o1 = R o1 : PolynomialRing i2 : I = ideal"xy2,yz3,zx4" 2 3 4 o2 = ideal (x*y , y*z , x z) o2 : Ideal of R i3 : multiplicitySequence I o3 = HashTable{2 => 9 } 3 => 25 o3 : HashTable

The j-multiplicity of I is the l-th number, where l is the analytic spread of I.

 i4 : analyticSpread I, jMult I o4 = (3, 25) o4 : Sequence

Note that this function does not require the ambient ring to be a polynomial ring:

 i5 : S = QQ[a..d] o5 = S o5 : PolynomialRing i6 : J = ideal (a*d - b*c, c^2-b*d) 2 o6 = ideal (- b*c + a*d, c - b*d) o6 : Ideal of S i7 : R = S/J o7 = R o7 : QuotientRing i8 : I = ideal(R_0^2,R_0*R_1,R_1^3) 2 3 o8 = ideal (a , a*b, b ) o8 : Ideal of R i9 : multiplicitySequence I o9 = HashTable{1 => 5} 2 => 7 o9 : HashTable

One can specify a particular element in the multiplicity sequence:

 i10 : multiplicitySequence_1 I o10 = 5

## Caveat

There are two conventions in use about the order of the sequence. The current function follows that of [4] and in this setting the j-multiplicity of I appears at the l-th spot, where l is the analytic spread of I. If the ideal I is not graded, this function may produce incorrect results.