Macaulay2 » Documentation
Packages » MixedMultiplicity :: mixedMultiplicity
next | previous | forward | backward | up | index | toc

mixedMultiplicity -- Compute a given mixed multiplicity of ideals

Synopsis

Description

Given the ideals $I_0,\ldots,I_r$ in a ring $R$ and the tuple $a = (a_0,\ldots,a_r) \in \mathbb{N}^{r+1}$ such that $I_0$ is primary to the maximal homogeneous ideal of $R$, $I_1,\ldots,I_r$ have positive grade and $a_0+ \cdots +a_r = dim R -1$, the function computes the mixed multiplicity $e_a$ of the ideals.

i1 : R = QQ[x,y,z,w];
i2 : I = ideal(x*y*w^3,x^2*y*w^2,x*y^3*w,x*y*z^3);

o2 : Ideal of R
i3 : m = ideal vars R;

o3 : Ideal of R
i4 : mixedMultiplicity ((m,I,I,I),(0,1,1,1))

o4 = 6

The function computes the Hilbert polynomial of the graded ring $\bigoplus (I_0^{u_0}I_1^{u_1} \cdots I_r^{u_r}/I_0^{u_0+1}I_1^{u_1} \cdots I_r^{u_r})$ to compute the mixed multiplicity. If the ideals $I_1,\ldots,I_r$ are also primary to the maximal ideal, then to compute the $(a_0+1, a_1,\ldots, a_r)$-th mixed multiplicity, one needs to enter the sequence ${a_0,a_1,\ldots,a_r}$ in the function. The same is illustrated in the following example.

i5 : R = QQ[x,y,z];
i6 : m = ideal vars R;

o6 : Ideal of R
i7 : f = z^5 + x*y^7 + x^15;
i8 : I = ideal(apply(0..2, i -> diff(R_i,f)))

               14    7      6    4
o8 = ideal (15x   + y , 7x*y , 5z )

o8 : Ideal of R
i9 : mixedMultiplicity ((m,I),(2,0))

o9 = 1
i10 : mixedMultiplicity ((m,I),(1,1))

o10 = 4

In case the user wants to compute a mixed multiplicity of ideals where one (or many) ideal(s) doesn't have positive grade, then one can pass to the ring $R/(0:I^\infty),$ where $(0:I^\infty)$ denotes the saturation of the ideal $I = I_1 \cdots I_r.$

i11 : S = QQ[x,y,z,w]/ideal(x*z, y*z);
i12 : I = ideal(x,y);

o12 : Ideal of S
i13 : m = ideal vars S;

o13 : Ideal of S
i14 : K = saturate(sub(ideal(),S), I^2);

o14 : Ideal of S
i15 : T = S/K;
i16 : J = sub(I, T);

o16 : Ideal of T
i17 : n = sub(m, T);

o17 : Ideal of T
i18 : mixedMultiplicity ((n,J,J),(2,0,0))

o18 = 1

See also

Ways to use mixedMultiplicity :

For the programmer

The object mixedMultiplicity is a method function.