next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Jets > Example 1

Example 1 -- jets of monomial ideals

As observed in R.A. Goward and K.E. Smith, The jet scheme of a monomial scheme [GS06], the ideal of jets of a monomial ideal is typically not a monomial ideal.

i1 : R=QQ[x,y,z]

o1 = R

o1 : PolynomialRing
i2 : I=ideal(x*y*z)

o2 = ideal(x*y*z)

o2 : Ideal of R
i3 : J2I=jets(2,I)

o3 = ideal (y0*z0*x2 + x0*z0*y2 + x0*y0*z2 + z0*x1*y1 + y0*x1*z1 + x0*y1*z1,
     y0*z0*x1 + x0*z0*y1 + x0*y0*z1, x0*y0*z0)

o3 : Ideal of QQ[x0, y0, z0][x1, y1, z1][x2, y2, z2]

However, by [GS06, Theorem 3.1], the radical is always a (squarefree) monomial ideal. In fact, the proof of [GS06, Theorem 3.2] shows that the radical is generated by the terms of the jet equations constructed as in the introduction. This observation provides an alternative algorithm for computing radicals of jets of monomial ideals, which can be faster than the default radical computation in Macaulay2.

i4 : elapsedTime jetsRadical(2,I)
 -- 0.00304838 seconds elapsed

o4 = ideal (y0*z0*x2, x0*z0*y2, x0*y0*z2, z0*x1*y1, y0*x1*z1, x0*y1*z1,
     y0*z0*x1, x0*z0*y1, x0*y0*z1, x0*y0*z0)

o4 : Ideal of QQ[x0, y0, z0][x1, y1, z1][x2, y2, z2]
i5 : elapsedTime radical J2I
 -- 0.246679 seconds elapsed

o5 = ideal (x0*y0*z0, x0*y0*z1, x0*z0*y1, y0*z0*x1, x0*y1*z1, y0*x1*z1,
     z0*x1*y1, x0*y0*z2, x0*z0*y2, y0*z0*x2)

o5 : Ideal of QQ[x0, y0, z0][x1, y1, z1][x2, y2, z2]

For a monomial hypersurface, [GS06, Theorem 3.2] describes the minimal primes of the ideal of jets. Moreover, the main theorem in C. Yuen, Multiplicity of jet schemes of monomial schemes counts the multiplicity of the jet scheme of a monomial hypersurface along its minimal primes (see also C. Yuen, The multiplicity of jet schemes of a simple normal crossing divisor). We compute the minimal primes, then use the LocalRings package to compute their multiplicities in the second jet scheme of the example above. Note that we need to flatten the polynomial ring of jets because the LocalRings package does not allow towers of rings.

i6 : P=minimalPrimes J2I

o6 = {ideal (z0, y0, x0), ideal (z0, y0, z1), ideal (z0, y0, y1), ideal (z0,
     x0, z1), ideal (z0, x0, x1), ideal (z0, z1, z2), ideal (y0, x0, y1),
     ideal (y0, x0, x1), ideal (y0, y1, y2), ideal (x0, x1, x2)}

o6 : List
i7 : (A,f)=flattenRing ring J2I

o7 = (A, map (A, QQ[x0, y0, z0][x1, y1, z1][x2, y2, z2], {x2, y2, z2, x1, y1,
     z1, x0, y0, z0}))

o7 : Sequence
i8 : needsPackage "LocalRings"

o8 = LocalRings

o8 : Package
i9 : M=cokernel gens f J2I

o9 = cokernel | x2y0z0+y2x0z0+z2x0y0+x1y1z0+x1z1y0+y1z1x0 x1y0z0+y1x0z0+z1x0y0 x0y0z0 |

o9 : A-module, quotient of A
i10 : mult=for p in P list (
          Rp := localRing(A,f p);
          length(M ** Rp)
i11 : netList(pack(4,mingle{P,mult}),HorizontalSpace=>1)

o11 = | ideal (z0, y0, x0) | 6 | ideal (z0, y0, z1) | 3 |
      | ideal (z0, y0, y1) | 3 | ideal (z0, x0, z1) | 3 |
      | ideal (z0, x0, x1) | 3 | ideal (z0, z1, z2) | 1 |
      | ideal (y0, x0, y1) | 3 | ideal (y0, x0, x1) | 3 |
      | ideal (y0, y1, y2) | 1 | ideal (x0, x1, x2) | 1 |