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