Macaulay2 » Documentation
Packages » CharacteristicClasses :: Segre
next | previous | forward | backward | up | index | toc

Segre -- The Segre class of a subscheme

Synopsis

Description

For a subscheme V of an applicable toric variety X this command computes the push-forward of the total Segre class s(V,X) of V in X to the Chow ring of X.

i1 : setRandomSeed 72;
i2 : R = ZZ/32749[w,y,z]

o2 = R

o2 : PolynomialRing
i3 : Segre(ideal(w*y),CompMethod=>PnResidual)

         2
o3 = - 4H  + 2H

     ZZ[H]
o3 : -----
        3
       H
i4 : A=ChowRing(R)

o4 = A

o4 : QuotientRing
i5 : Segre(A,ideal(w^2*y,w*y^2))

         2
o5 = - 3h  + 2h
         1     1

o5 : A

Now consider an example in \PP^2 \times \PP^2, if we input the Chow ring A the output will be returned in the same ring. To ensure proper function of the methods we build the Chow ring using the ChowRing command. We may also return a MutableHashTable.

i6 : R=MultiProjCoordRing({2,2})

o6 = R

o6 : PolynomialRing
i7 : r=gens R

o7 = {x , x , x , x , x , x }
       0   1   2   3   4   5

o7 : List
i8 : A=ChowRing(R)

o8 = A

o8 : QuotientRing
i9 : I=ideal(r_0^2*r_3-r_4*r_1*r_2,r_2^2*r_5)

             2              2
o9 = ideal (x x  - x x x , x x )
             0 3    1 2 4   2 5

o9 : Ideal of R
i10 : Segre I

         2 2      2          2     2            2
o10 = 72h h  - 24h h  - 12h h  + 4h  + 4h h  + h
         1 2      1 2      1 2     1     1 2    2

      ZZ[h ..h ]
          1   2
o10 : ----------
         3   3
       (h , h )
         1   2
i11 : s1=Segre(A,I)

         2 2      2          2     2            2
o11 = 72h h  - 24h h  - 12h h  + 4h  + 4h h  + h
         1 2      1 2      1 2     1     1 2    2

o11 : A
i12 : SegHash=Segre(A,I,Output=>HashForm)

o12 = MutableHashTable{...4...}

o12 : MutableHashTable
i13 : peek SegHash

o13 = MutableHashTable{G => 2h  + h  + 1                                               }
                              1    2
                       Glist => {1, 2h  + h , 0, 0, 0}
                                      1    2
                                             2            2       2          2     2 2
                       SegreList => {0, 0, 4h  + 4h h  + h , - 24h h  - 12h h , 72h h }
                                             1     1 2    2       1 2      1 2     1 2
                                   2 2      2          2     2            2
                       Segre => 72h h  - 24h h  - 12h h  + 4h  + 4h h  + h
                                   1 2      1 2      1 2     1     1 2    2
i14 : s1==SegHash#"Segre"

o14 = true

In the case where the ambient space is a toric variety which is not a product of projective spaces we must load the NormalToricVarieties package and must also input the toric variety. If the toric variety is a product of projective space it is recommended to use the form above rather than inputting the toric variety for efficiency reasons.

i15 : needsPackage "NormalToricVarieties"

o15 = NormalToricVarieties

o15 : Package
i16 : Rho = {{1,0,0},{0,1,0},{0,0,1},{-1,-1,0},{0,0,-1}}

o16 = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {-1, -1, 0}, {0, 0, -1}}

o16 : List
i17 : Sigma = {{0,1,2},{1,2,3},{0,2,3},{0,1,4},{1,3,4},{0,3,4}}

o17 = {{0, 1, 2}, {1, 2, 3}, {0, 2, 3}, {0, 1, 4}, {1, 3, 4}, {0, 3, 4}}

o17 : List
i18 : X = normalToricVariety(Rho,Sigma,CoefficientRing =>ZZ/32749)

o18 = X

o18 : NormalToricVariety
i19 : CheckToricVarietyValid(X)

o19 = true
i20 : R=ring(X)

o20 = R

o20 : PolynomialRing
i21 : I=ideal(R_0^4*R_1,R_0*R_3*R_4*R_2-R_2^2*R_0^2)

              4       2 2
o21 = ideal (x x , - x x  + x x x x )
              0 1     0 2    0 2 3 4

o21 : Ideal of R
i22 : Segre(X,I)

           2       2
o22 = - 72x x  + 3x  + 8x x  + x
           3 4     3     3 4    3

                      ZZ[x ..x ]
                          0   4
o22 : -----------------------------------------
      (x x , x x x , x  - x , x  - x , x  - x )
        2 4   0 1 3   0    3   1    3   2    4
i23 : Ch=ToricChowRing(X)

o23 = Ch

o23 : QuotientRing
i24 : s3=Segre(Ch,X,I)

           2       2
o24 = - 72x x  + 3x  + 8x x  + x
           3 4     3     3 4    3

o24 : Ch

All the examples were done using symbolic computations with Gr\"obner bases. Changing the option CompMethod to bertini will do the main computations numerically, provided Bertini is installed and configured. Note that the bertini option is only available for subschemes of \PP^n.

Observe that the algorithm is a probabilistic algorithm and may give a wrong answer with a small but nonzero probability. Read more under probabilistic algorithm.

Ways to use Segre :

For the programmer

The object Segre is a method function with options.