- Usage:
`intersectionProduct(IX,IV,IY)``intersectionProduct(IX,IV,IY,A)`

- Inputs:
`IX`, an ideal, a multi-homogeneous ideal defining a closed subscheme of ℙ^{n1}x...xℙ^{nm}; makeProductRing builds the graded coordinate ring of ℙ^{n1}x...xℙ^{nm}.`IV`, an ideal, a multi-homogeneous ideal defining a closed subscheme of ℙ^{n1}x...xℙ^{nm}; makeProductRing builds the graded coordinate ring of ℙ^{n1}x...xℙ^{nm}.`IY`, an ideal, a multi-homogeneous ideal defining a smooth complete intersection in ℙ^{n1}x...xℙ^{nm}; makeProductRing builds the graded coordinate ring of ℙ^{n1}x...xℙ^{nm}.`A`, a quotient ring, the Chow ring of ℙ^{n1}x...xℙ^{nm}. This ring can be built by applying makeChowRing to the coordinate ring of ℙ^{n1}x...xℙ^{nm}.

- Optional inputs:
`Verbose =>`a Boolean value

- Outputs:
`intProd`, a ring element, a class in the Chow ring A of ℙ^{n1}x...xℙ^{nm}representing the Fulton-MacPherson intersection product of X with V in Y (where X is the scheme associated to IX, etc.).

For subschemes X,V of a smooth complete intersection subvariety Y of ℙ^{n1}x...xℙ^{nm} this command computes the Fulton-MacPherson intersection product of X with V in Y as a class in the Chow ring of ℙ^{n1}x...xℙ^{nm}. Note that this command requires that Y is a smooth complete intersection subvariety, however this is not checked internally.

i1 : R = makeProductRing({3}) o1 = R o1 : PolynomialRing |

i2 : (x,y,z,w) = toSequence gens R o2 = (a, b, c, d) o2 : Sequence |

i3 : Q = ideal(x*y-z*w) o3 = ideal(a*b - c*d) o3 : Ideal of R |

i4 : L1 = ideal(x,w) o4 = ideal (a, d) o4 : Ideal of R |

i5 : L2 = ideal(y,w) o5 = ideal (b, d) o5 : Ideal of R |

i6 : intersectionProduct(L1,L2,Q,Verbose=>true) 2 2 [Y]= H H , alpha= 2H + 2H 1 2 1 2 3 3 Projective degrees= {7H H } 1 2 3 3 s(X,Y)= H H 1 2 3 Segre pullback to diagonal = H 1 2 Chern class = 2H + 2H + 1 1 1 3 o6 = H 1 ZZ[H ] 1 o6 : ------ 4 H 1 |

i7 : intersectionProduct(L1,L1,Q) o7 = 0 |

- intersectionProduct(Ideal,Ideal,Ideal)
- intersectionProduct(Ideal,Ideal,Ideal,QuotientRing)