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_2 I o10 = 7 |
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.
The object multiplicitySequence is a method function with options.