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 h_{1},...,h_{m} 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 : kk=ZZ/32749; |
i2 : R=kk[x_0..x_4] o2 = R o2 : PolynomialRing |
i3 : I=ideal(random(1,R),random(2,R),x_0*x_2-x_3*x_0); o3 : Ideal of R |
i4 : CSM(ideal I_0,CompMethod=>PnResidual) 4 3 2 o4 = 4H + 6H + 4H + H ZZ[H] o4 : ----- 5 H |
i5 : csmI=CSM(I) 4 3 o5 = 2h + 4h 1 1 ZZ[h ] 1 o5 : ------ 5 h 1 |
i6 : A=ring csmI o6 = A o6 : QuotientRing |
i7 : csmIHash=CSM(A,I,Output=>HashForm); |
i8 : csmIHash#{0,1}==CSM(A,ideal(I_0*I_1)) o8 = true |
Note that the ideal above is a complete intersection, thus we may change the method option which may speed computation in some cases. We may also note that the ideal generated by the first 2 generators of I defines a smooth scheme and input this information into the method.
i9 : csmI==CSM(A,I,Method=>DirectCompleteInt) o9 = true |
i10 : CSM(A,I,Method=>DirectCompleteInt,IndsOfSmooth=>{0,1}) 4 3 o10 = 2h + 4h 1 1 o10 : A |
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 : A=ChowRing(R) o12 = A o12 : QuotientRing |
i13 : r=gens R o13 = {x , x , x , x , x , x } 0 1 2 3 4 5 o13 : List |
i14 : K=ideal(r_0^2*r_3-r_4*r_1*r_2,r_2^2*r_5) 2 2 o14 = ideal (x x - x x x , x x ) 0 3 1 2 4 2 5 o14 : Ideal of R |
i15 : time csmK=CSM(A,K) -- used 0.559617 seconds 2 2 2 2 2 2 o15 = 7h h + 5h h + 4h h + h + 3h h + h 1 2 1 2 1 2 1 1 2 2 o15 : A |
i16 : csmKHash= CSM(A,K,Output=>HashForm) o16 = MutableHashTable{...4...} o16 : MutableHashTable |
i17 : csmK==csmKHash#"CSM" o17 = true |
i18 : CSM(A,ideal(K_0))==csmKHash#{0} o18 = true |
Suppose we have already computed some of CSM classes of hypersurfaces involved in the inclusion-exclusion procedure, then we may input these to be used by the CSM function. In the example below we input the CSM class of V(K_{0}) (that is of the hypersurface defined by the first polynomial generating K) and the CSM class of the hypersurface defined by the product of the generators of K.
i19 : m=new MutableHashTable; |
i20 : m#{0}=csmKHash#{0} 2 2 2 2 2 2 o20 = 8h h + 7h h + 6h h + 2h + 5h h + 2h + 2h + h 1 2 1 2 1 2 1 1 2 2 1 2 o20 : A |
i21 : m#{0,1}=csmKHash#{0,1} 2 2 2 2 2 2 o21 = 9h h + 9h h + 9h h + 3h + 7h h + 3h + 3h + 2h 1 2 1 2 1 2 1 1 2 2 1 2 o21 : A |
i22 : time CSM(A,K,m) -- used 0.0877933 seconds 2 2 2 2 2 2 o22 = 7h h + 5h h + 4h h + h + 3h h + h 1 2 1 2 1 2 1 1 2 2 o22 : A |
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 recommend to use the form above rather than inputting the toric variety for efficiency reasons.
i23 : needsPackage "NormalToricVarieties" o23 = NormalToricVarieties o23 : Package |
i24 : Rho = {{1,0,0},{0,1,0},{0,0,1},{-1,-1,0},{0,0,-1}} o24 = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {-1, -1, 0}, {0, 0, -1}} o24 : List |
i25 : Sigma = {{0,1,2},{1,2,3},{0,2,3},{0,1,4},{1,3,4},{0,3,4}} o25 = {{0, 1, 2}, {1, 2, 3}, {0, 2, 3}, {0, 1, 4}, {1, 3, 4}, {0, 3, 4}} o25 : List |
i26 : X = normalToricVariety(Rho,Sigma,CoefficientRing =>ZZ/32749) o26 = X o26 : NormalToricVariety |
i27 : csmX=CSM X 2 2 o27 = 6x x + 3x + 6x x + 3x + 2x + 1 3 4 3 3 4 3 4 ZZ[x , x , x , x , x ] 0 1 2 3 4 o27 : ----------------------------------------- (x x , x x x , x - x , x - x , x - x ) 2 4 0 1 3 0 3 1 3 2 4 |
i28 : Ch=ring csmX o28 = Ch o28 : QuotientRing |
i29 : CheckToricVarietyValid(X) o29 = true |
i30 : R=ring(X) o30 = R o30 : PolynomialRing |
i31 : I=ideal(R_0^4*R_1,R_0*R_3*R_4*R_2-R_2^2*R_0^2) 4 2 2 o31 = ideal (x x , - x x + x x x x ) 0 1 0 2 0 2 3 4 o31 : Ideal of R |
i32 : CSM(X,I) 2 2 o32 = 5x x + 3x + 4x x + x 3 4 3 3 4 3 ZZ[x , x , x , x , x ] 0 1 2 3 4 o32 : ----------------------------------------- (x x , x x x , x - x , x - x , x - x ) 2 4 0 1 3 0 3 1 3 2 4 |
i33 : CSM(Ch,X,I) 2 2 o33 = 5x x + 3x + 4x x + x 3 4 3 3 4 3 o33 : Ch |
This function may also compute the CSM class of a normal toric variety defined by a fan. In this case a combinitorial method is used. This method is accessed with the usual CSM command with either only a toric variety or a toric variety and a Chow ring as input. In this case we only require that the input toric variety is complete and simplicial (in particular we do not need it to be smooth).
i34 : needsPackage "NormalToricVarieties" o34 = NormalToricVarieties o34 : Package |
i35 : U = hirzebruchSurface 7 o35 = U o35 : NormalToricVariety |
i36 : Ch=ToricChowRing(U) o36 = Ch o36 : QuotientRing |
i37 : CSM U 2 o37 = - 3x x + x - 5x + 2x + 1 2 3 3 2 3 ZZ[x , x , x , x ] 0 1 2 3 o37 : ------------------------------------ (x x , x x , x - x , x + 7x - x ) 0 2 1 3 0 2 1 2 3 |
i38 : csm1=CSM(Ch,U) 2 o38 = - 3x x + x - 5x + 2x + 1 2 3 3 2 3 o38 : Ch |
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}.
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.