#### D.4.18.8 iMult

Procedure from library `normal.lib` (see normal_lib).

Usage:
  iMult(L); L a list of ideals

Return:
  int, the intersection multiplicity of the ideals of L; if iMult(L) is infinite, -1 is returned.

Theory:
  If r=size(L)=2 then iMult(L) = vdim(std(L[1]+L[2])) and in general iMult(L) = sum{ iMult(L[j],Lj) | j=1..r-1 } with Lj the intersection of L[j+1],...,L[r]. If I is the intersection of all ideals in L then we have delta(I) = delta(L[1])+...+delta(L[r]) + iMult(L) where delta(I) = vdim (normalisation(R/I)/(R/I)), R the basering.

Example:

    LIB "normal.lib";
    ring s  = 23,(x,y),dp;
    list L = (x-y),(x3+y2);
    iMult(L);
    ==> 3
    L = (x-y),(x3+y2),(x3-y4);
    iMult(L);
    ==> 19

User manual for Singular version 4-0-3, 2016, generated by texi2html.