# distinguished -- Compute the distinguished subvarieties of a pullback, intersection or cone

## Synopsis

• Usage:
L = distinguished(f,I)
L = distinguished(I,J)
L = distinguished(I)
• Inputs:
• Optional inputs:
• Outputs:

## Description

Suppose that f:S→R is a map of rings, and I is an ideal of S. Let K be the kernel of the map of associated graded rings grI(S) →gr(fI)R.

The distinguished primes pi in S/I are the intersections of the minimal primes Pi over K with S/I ⊂ grIS, that is, the minimal primes of the support in R/I of the normal cone of f(I). The multiplicity associated with pi is by definition the the multiplicities of Pi in the primary decomposition of K.

Distinguished subvarieties and their multiplicity (defined by the distinguished primes, usually in the global case of a quasi-projective variety and its sheaf of rings) play a central role in the Fulton-MacPherson construction of refined intersection products. See William Fulton, Intersection Theory, Section 6.1 for the geometric context and the general case, and the explanation in the article Rees Algebras in JSAG (submitted).

This application is illustrated in the code for intersectInP.

We allow the special cases

distinguished(I,J) := distinguished(f,I), with f:S→S/J the projection

and

distinguished(I) := distinguished(f,I), with f:S→S the identity.

which computes the distinguished primes in the support of the normal cone grIS itself. An interesting application is given in the paper

“A geometric effective Nullstellensatz,” Invent. Math. 137 (1999), no. 2, 427--448 by Ein and Lazarsfeld.

Here is an example showing that associated primes need not be distinguished primes:

 ```i1 : R = ZZ/101[a,b] o1 = R o1 : PolynomialRing``` ```i2 : I = ideal(a^2, a*b) 2 o2 = ideal (a , a*b) o2 : Ideal of R``` ```i3 : ass I o3 = {ideal a, ideal (b, a)} o3 : List```

There is one minimal associated prime (a thick line in P3) and one embedded prime.

 ```i4 : distinguished I o4 = {{1, ideal a}, {2, ideal (b, a)}} o4 : List``` ```i5 : intersectInP(I,I) o5 = {{1, ideal a}} o5 : List```