Chern I
Chern(A,I)
Chern(X,J)
Chern(Ch,X,J)
For a nonsingular ndimensional subscheme V of an applicable toric variety X, this command computes the pushforward 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=\PP^{n_1}\times... \times \PP^{n_m} is a product of projective space. Otherwise it is a polynomial in R/(SR+LR) where R is the Cox ring, SR the StanelyReilser Ideal and LR the ideal generated by linear relations among the rays.





The 2x2minors of the matrix A form the ideal of the twisted cubic. It is wellknown that its degree is 3 and its genus is 0. The calculations confirm that deg c_1 = 22g = 2 and deg c_0 = 3. It is also possible to input the Chow ring of \PP^3 so that the answers are returned in this ring allowing us to check equality:





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. We may also return a MutableHashTable.




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. Below we verify that the ChernFulton class equals the Chern class for this smooth subvariety.











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 and PnResidual options may only be used for subschemes of \PP^n.
The command Chern actually computes the pushforward of the total ChernFulton class of the subscheme V of an applicable toric variety X. The ChernFulton class is one of several generalizations of Chern classes to possibly singular subschemes. It is defined as c_{CF}(V) = c(T_{X}_V) \cap s(V,X). For nonsingular schemes, the ChernFulton class coincides with the Chern class of the tangent bundle. So for nonsingular 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.
The object Chern is a method function with options.