M953 Homework 6 (Click here for solutions)

Due Friday, March 15, 2002



[1] Let R = k[x1, ..., xn] and let Rd denote the subset of all polynomials in R of degree d or less, including 0. Now let S = k[x0, ..., xn] and let Sd denote the subset of all homogeneous polynomials in S of degree d, including 0. Note that both Rd and Sd are k vector spaces. (Part (b) is optional; it's really just for those people who haven't seen "stars and bars" before.) [2] In this problem, assume F is in k[x,y], where k is the complex numbers. [3] Calculate the intersection multiplicity I(p, F^G) [note: I'm using ^ to denote intersection] for each F and G below. In each case, assume p = (0,0). Check your answers with Macaulay2. Here are some useful Macaulay2 routines to compute intersection multiplicities. Assuming R = k[x,y] is your ring, P = I(p) is the ideal of a point p in the plane, and I = ideal(f,g) for some polynomials f and g in R which have no common factor vanishing at p, then mylocalize(I,P,R) gives the ideal Qi corresponding to p in the minimal primary decomposition I = Q1^...^Qr of I. Thus I(p, F^G) = dimkR/Qi, as discussed in class, but the Macaulay2 command for "dim" in this case is degree so I(p, F^G) = degree( R/mylocalize(I,P,R) ).

Now, mylocalize is not built in, it's actually a Macaulay2 script that I define below. You can copy it from the web page for the homework and paste it into Macaulay2 (the whole thing all at once). For convenience we can also define a second script that calls mylocalize to calculate I(p, F^G) in one step. Here are the scripts. Below I give a sample session using them.
findIntMult = (I,P,R) -> (
if(dim(R/mylocalize(I,P,R)) > 0 ) then
  print "The intersection multiplicity is infinite!!!!!!" else
  degree( R/mylocalize(I,P,R) ))

mylocalize = (I,P,R) -> (
L:=primaryDecomposition I;
j:=-1;
J:= I;
B:= ideal (matrix {{1}}**R);  -- Make B the ideal (1) but in current ring, not ZZ.
scan(#L, i->(
J=(L_i)*ideal (matrix {{1}}**R);  -- convert L_i into an ideal if it's of type MonomialIdeal
if( (P:J) == (ideal (matrix {{1}}**R)) ) then B=intersect(B,J);
));
B)
Sample Session:
Macaulay 2, version 0.9.2
--Copyright 1993-2001, D. R. Grayson and M. E. Stillman
--Singular-Factory 1.3c, copyright 1993-2001, G.-M. Greuel, et al.
--Singular-Libfac 0.3.2, copyright 1996-2001, M. Messollen

i1 : R = QQ[x,y]

o1 = R

o1 : PolynomialRing

i2 : findIntMult = (I,P,R) -> (
if(dim(R/mylocalize(I,P,R)) > 0 ) then
  print "The intersection multiplicity is infinite!!!!!!" else
  degree( R/mylocalize(I,P,R) ))

mylocalize = (I,P,R) -> (
L:=primaryDecomposition I;
j:=-1;
J:= I;
B:= ideal (matrix {{1}}**R);  -- Make B the ideal (1) but in current ring, not ZZ.
scan(#L, i->(
J=(L_i)*ideal (matrix {{1}}**R);  -- convert L_i into an ideal if it's of type MonomialIdeal
if( (P:J) == (ideal (matrix {{1}}**R)) ) then B=intersect(B,J);
));
B)

o2 = findIntMult

o2 : Function

i3 :                                         
o3 = mylocalize

o3 : Function

i4 : findIntMult(ideal(x^3,y^4),ideal(x,y),R)

o4 = 12

i5 : quit
Notes:
(1) matrix {{1}} makes a 1x1 matrix whose entry is 1. But ideal (matrix {{1}}) would be the unit ideal in ZZ, not R. To get the unit ideal in R we need to tensor by R, hence I use ideal (matrix {{1}}**R) in the script; "**" denotes tensoring.
(2) The colon in L:=primaryDecomposition I makes L into a local variable, so you don't overwrite other L's you may have defined outside of the script.
(3) Now, primaryDecomposition I is a list of ideals. Thus L is a list whose (i+1)st item is L_i (so L_0 is the first item in the list); #L is the number of entries in the list, and scan(#L, i->( various commands go here ) ) makes i run from 0 to #L-1.
(4) P:J is the usual colon operation in commutative algebra; it is the ideal of all f in R such that fJ is contained in P. Thus P:J = (1) if and only if P contains J, so if( (P:J) == (ideal (matrix {{1}}**R)) ) then B=intersect(B,J) intersects B with J if P contains J. Together with the scan statement the effect is to make B the intersection of all ideals in the minimal primary decomposition of I which are contained in P.