# chern(ZZ,CoherentSheaf) -- compute the Chern class of a coherent sheaf

## Synopsis

• Function: chern
• Usage:
chern (i, F)
• Inputs:
• i, an integer, that determines a component of the Chern class (optional)
• F, , on a complete simplicial normal toric variety
• Outputs:
• , in the intersection ring of the underlying variety

## Description

The total Chern class of a coherent sheaf F on a variety X is defined axiomatically by an element chern F in the Chow ring of X such that the following three conditions hold:

• For any morphism f : X -> Y, we have chern f^*(F) == f^*(chern F).
• For each exact sequence 0 -> F' -> F -> F'' -> 0, we have chern F == (chern F') * (chern F'').
• For any divisor D on X, we have chern OO_X (D) == 1 + [D] where [D] denotes the divisor class in picardGroup X and we identify the Picard group of X with the graded component of the intersection ring having codimenion 1.

The i-th component of chern F is chern (i, F), so we obtain chern F == chern (0, F) + chern (1, F) + ... + chern (dim X, F).

The total Chern class for the tangent bundle on projective space is particularly simple; the coefficient of i-th component is a binomial coefficient.

 i1 : d = 3; i2 : PPd = toricProjectiveSpace d; i3 : A0 = intersectionRing PPd; i4 : TP = dual cotangentSheaf PPd o4 = image {-2} | 0 x_0 x_1 0 | {-2} | x_1 -x_2 0 0 | {-2} | x_0 0 x_2 0 | {-2} | -x_3 0 0 x_2 | {-2} | 0 -x_3 0 x_1 | {-2} | 0 0 x_3 x_0 | 6 o4 : coherent sheaf on PPd, subsheaf of OO (2) PPd i5 : f0 = chern TP 2 3 o5 = 1 + 4t + 6t + 4t 3 3 3 o5 : A0 i6 : assert (A0 === ring f0) i7 : assert (f0 === (1+A0_0)^(d+1)) i8 : assert all(d, i -> leadCoefficient chern (i, TP) == binomial(d+1,i)) i9 : assert (chern TP === sum (d+1, i -> chern (i, TP)))

On a complete smooth normal toric variety, the total Chern class of the cotangent sheaf is a product over the torus-invariant divisors of the total Chern classes of the inverse of the corresponding line bundles.

 i10 : X = smoothFanoToricVariety (4, 50); i11 : A = intersectionRing X; i12 : Omega = cotangentSheaf X o12 = cokernel {2, 0, 0, 0} | 0 x_0x_4x_7 x_0x_3x_6x_7 0 0 x_0x_3x_5x_7 0 0 0 0 | {0, 0, 2, 0} | x_3x_4 0 0 x_0x_2x_3x_7 x_0x_1x_3x_7 0 0 0 0 0 | {0, 2, 0, 0} | x_5 0 0 0 0 0 x_0x_2x_7 x_0x_1x_7 0 0 | {0, 2, 0, 0} | -x_6 0 0 0 0 0 0 0 x_0x_2x_7 x_0x_1x_7 | {0, 0, 0, 2} | 0 x_1 0 0 0 0 x_3x_6 0 x_3x_5 0 | {0, 0, 0, 2} | 0 -x_2 0 0 0 0 0 x_3x_6 0 x_3x_5 | {0, 0, 0, 2} | 0 0 x_1 x_5 0 0 -x_4 0 0 0 | {0, 0, 0, 2} | 0 0 -x_2 0 x_5 0 0 -x_4 0 0 | {0, 0, 0, 2} | 0 0 0 -x_6 0 x_1 0 0 -x_4 0 | {0, 0, 0, 2} | 0 0 0 0 -x_6 -x_2 0 0 0 -x_4 | 1 1 2 6 o12 : coherent sheaf on X, quotient of OO (-2, 0, 0, 0) ++ OO (0, 0, -2, 0) ++ OO (0, -2, 0, 0) ++ OO (0, 0, 0, -2) X X X X i13 : f1 = chern Omega 2 o13 = 1 + (- t - t - t - 2t ) + (t t + t t + 2t t + 4t ) + (2t t t - 2 4 6 7 2 6 4 6 6 7 7 2 4 6 ----------------------------------------------------------------------- 2 3 16 4 4t t - 4t ) + --t 6 7 7 3 7 o13 : A i14 : assert (f1 === product (# rays X, i -> chern OO (-X_i))) i15 : f3 = chern (2, Omega) 2 o15 = t t + t t + 2t t + 4t 2 6 4 6 6 7 7 o15 : A i16 : assert (f3 == sum (orbits (X, 2), s -> product (s, i -> A_i)))