Chern -- The Chern class

Synopsis

• Usage:
Chern I
Chern(A,I)
Chern(X,J)
Chern(Ch,X,J)
• Inputs:
• I, an ideal, a multi-homogeneous ideal in a graded polynomial ring over a field defining a closed subscheme V of ℙn1x...xℙnm
• A, , A=ℤ[h1,...,hm]/(h1n1+1,...,hmnm+1) quotient ring representing the Chow ring of ℙn1x...xℙnm, this ring should be built using the ChowRing command
• J, an ideal, in the graded polynomial ring which is coordinate ring of the Normal Toric Variety X
• X, , which is the ambient space that we are working in
• Ch, , the Chow ring of the toric variety X, Ch=(ring J)/(SR+LR) where SR is the Stanley-Reisner ideal of the fan defining X and LR is the linear relations ideal, this ring should be built using the ToricChowRing command
• Optional inputs:
• CompMethod => ProjectiveDegree, default value ProjectiveDegree, this algorithm may be used for subschemes of any applicable toric variety (this may be checked using the CheckToricVarietyValid command)
• CompMethod => PnResidual, default value ProjectiveDegree, this algorithm may be used for subschemes of ℙn only, see CompMethod
• Output => ChowRingElement, default value ChowRingElement, returns a RingElement in the Chow ring of the appropriate ambient space
• Output => HashForm, default value ChowRingElement, returns a MutableHashTable containing the following keys: "Chern" (the Total Chern class),"G" (the polynomial with coefficients of the hyperplane classes representing the projective degrees), "Glist" (the list form of "G") , "Segre" (the total Segre class of the input),"SegreList" (the list form of "Segre") , "CF" (the total Chern-Fulton class)
• Outputs:
• , the pushforward of the total Chern class of the input to the Chow ring of the appropriate ambient space

Description

For a non-singular n-dimensional subscheme V of an applicable toric variety X, this command computes the push-forward of the total Chern class of V to the Chow ring of X. The output is an element of the Chow ring of X, that is a polynomial in the hyperplane classes h1,...,hm if X=ℙn1×... ×ℙnm is a product of projective space. Otherwise it is a polynomial in R/(SR+LR) where R is the Cox ring, SR the Stanely-Reilser Ideal and LR the ideal generated by linear relations among the rays.

 i1 : setRandomSeed 438; i2 : R = QQ[v,y,z,w] o2 = R o2 : PolynomialRing i3 : B = matrix{{v,y,z},{y,z,w}} o3 = | v y z | | y z w | 2 3 o3 : Matrix R <--- R i4 : Chern minors(2,B) 3 2 o4 = 2h + 3h 1 1 ZZ[h ] 1 o4 : ------ 4 h 1 i5 : Chern(minors(2,B),CompMethod=>PnResidual) 3 2 o5 = 2H + 3H ZZ[H] o5 : ----- 4 H

The 2x2-minors of the matrix A form the ideal of the twisted cubic. It is well-known that its degree is 3 and its genus is 0. The calculations confirm that deg c1 = 2-2g = 2 and deg c0 = 3. It is also possible to input the Chow ring of ℙ3 so that the answers are returned in this ring allowing us to check equality:

 i6 : A=ChowRing(R) o6 = A o6 : QuotientRing i7 : c1=Chern(A, minors(2,B)) 3 2 o7 = 2h + 3h 1 1 o7 : A i8 : cHash=Chern(A,minors(2,B),Output=>HashForm) o8 = MutableHashTable{...6...} o8 : MutableHashTable i9 : peek cHash 2 3 o9 = MutableHashTable{SegreList => {0, 0, 3h , -10h }} 1 1 2 Glist => {1, 2h , h , 0} 1 1 3 2 Segre => - 10h + 3h 1 1 3 2 Chern => 2h + 3h 1 1 3 2 CF => 2h + 3h 1 1 2 G => h + 2h + 1 1 1 i10 : c1==cHash#"Chern" o10 = true

Now consider an example in ℙ2 ×ℙ2, if we input the Chow ring A the output will be returned in the same ring. We may also return a MutableHashTable.

 i11 : R=MultiProjCoordRing({2,2}) o11 = R o11 : PolynomialRing i12 : r=gens R o12 = {x , x , x , x , x , x } 0 1 2 3 4 5 o12 : List i13 : I=ideal(r_0^2*r_3-r_4*r_1*r_2,r_2^2*r_5) 2 2 o13 = ideal (x x - x x x , x x ) 0 3 1 2 4 2 5 o13 : Ideal of R i14 : Chern I 2 2 2 2 2 o14 = 15h h + 3h h + 4h + 4h h + h 1 2 1 2 1 1 2 2 ZZ[h , h ] 1 2 o14 : ---------- 3 3 (h , h ) 1 2

In the case where the ambient space is a toric variety which is not a product of projective spaces we must load the NormalToricVarieites 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. Below we verify that the Chern-Fulton class equals the Chern class for this smooth subvariety.

 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 : Chern(X,I) 2 2 o22 = - 36x x + 6x + 10x x + x 3 4 3 3 4 3 ZZ[x , x , x , x , x ] 0 1 2 3 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=Chern(Ch,X,I) 2 2 o24 = - 36x x + 6x + 10x x + x 3 4 3 3 4 3 o24 : Ch i25 : s3==(product(gens(Ch),a->a+1)*Segre(Ch,X,I)) o25 = true

All the examples were done using symbolic computations with Gröbner bases. Changing the option CompMethod to bertini will do the main computations numerically, provided Bertini is installed and configured. Note that the bertini and PnResidual options may only be used for subschemes of ℙn.

The command Chern actually computes the push-forward of the total Chern-Fulton class of the subscheme V of an applicable toric variety X. The Chern-Fulton class is one of several generalizations of Chern classes to possibly singular subschemes. It is defined as cCF(V) = c(TX|V) ∩s(V,X). For non-singular schemes, the Chern-Fulton class coincides with the Chern class of the tangent bundle. So for non-singular input, the command will compute just the usual Chern class.

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 Chern :

• Chern(Ideal)
• Chern(Ideal,Symbol)
• Chern(QuotientRing,Ideal)