next | previous | forward | backward | up | top | index | toc | Macaulay2 website
NormalToricVarieties :: cartierDivisorGroup(NormalToricVariety)

cartierDivisorGroup(NormalToricVariety) -- compute the group of torus-invariant Cartier divisors

Synopsis

Description

The group of torus-invariant Cartier divisors on XX is the subgroup of all locally principal torus-invarient Weil divisors. On a normal toric variety, the group of torus-invariant Cartier divisors can be computed as an inverse limit. More precisely, if MM denotes the lattice of characters on XX and the maximal cones in the fan of XX are sigma0,sigma1,,sigmar1sigma_0, sigma_1, \dots, sigma_{r-1}, then we have CDiv(X)=ker(iM/M(sigmai)i<jM/M(sigmaisigmaj)CDiv(X) = ker( \oplus_{i} M/M(sigma_i{}) \to{} \oplus_{i<j} M/M(sigma_i \cap sigma_j{}). For more information, see Theorem 4.2.8 in Cox-Little-Schenck's Toric Varieties.

When XX is smooth, every torus-invariant Weil divisor is Cartier.

i1 : PP2 = toricProjectiveSpace 2;
i2 : cartierDivisorGroup PP2

       3
o2 = ZZ

o2 : ZZ-module, free
i3 : assert (isSmooth PP2 and weilDivisorGroup PP2 === cartierDivisorGroup PP2)
i4 : assert (id_(cartierDivisorGroup PP2) == fromCDivToWDiv PP2)
i5 : FF7 = hirzebruchSurface 7;
i6 : cartierDivisorGroup FF7

       4
o6 = ZZ

o6 : ZZ-module, free
i7 : assert (isSmooth FF7 and weilDivisorGroup FF7 === cartierDivisorGroup FF7)
i8 : assert (id_(cartierDivisorGroup FF7) == fromCDivToWDiv FF7)

On a simplicial toric variety, every torus-invariant Weil divisor is Q\QQ-Cartier; every torus-invariant Weil divisor has a positive integer multiple that is Cartier.

i9 : U = normalToricVariety ({{4,-1},{0,1}},{{0,1}});
i10 : assert (isSimplicial U and not isSmooth U and not isComplete U)
i11 : cartierDivisorGroup U

        2
o11 = ZZ

o11 : ZZ-module, free
i12 : weilDivisorGroup U

        2
o12 = ZZ

o12 : ZZ-module, free
i13 : prune coker fromCDivToWDiv U

o13 = cokernel | 4 |

                               1
o13 : ZZ-module, quotient of ZZ
i14 : assert ( (coker fromCDivToWDiv U) ** QQ == 0)
i15 : X = weightedProjectiveSpace {1,2,2,3,4};
i16 : assert (isSimplicial X and not isSmooth X and isComplete X)
i17 : cartierDivisorGroup X

        5
o17 = ZZ

o17 : ZZ-module, free
i18 : weilDivisorGroup X

        5
o18 = ZZ

o18 : ZZ-module, free
i19 : prune coker fromCDivToWDiv X

o19 = cokernel | 12 |

                               1
o19 : ZZ-module, quotient of ZZ
i20 : assert (rank coker fromCDivToWDiv X === 0)

In general, the Cartier divisors are only a subgroup of the Weil divisors.

i21 : Q = normalToricVariety ({{1,0,0},{0,1,0},{0,0,1},{1,1,-1}},{{0,1,2,3}});
i22 : assert (not isSimplicial Q and not isComplete Q)
i23 : cartierDivisorGroup Q

        3
o23 = ZZ

o23 : ZZ-module, free
i24 : weilDivisorGroup Q

        4
o24 = ZZ

o24 : ZZ-module, free
i25 : prune coker fromCDivToWDiv Q

        1
o25 = ZZ

o25 : ZZ-module, free
i26 : assert (rank coker fromCDivToWDiv Q === 1)
i27 : Y = normalToricVariety (id_(ZZ^3) | -id_(ZZ^3));
i28 : assert (not isSimplicial Y and isComplete Y)
i29 : cartierDivisorGroup Y

        4
o29 = ZZ

o29 : ZZ-module, free
i30 : weilDivisorGroup Y

        8
o30 = ZZ

o30 : ZZ-module, free
i31 : prune cokernel fromCDivToWDiv Y

o31 = cokernel | 2 0 0 |
               | 0 2 0 |
               | 0 0 2 |
               | 0 0 0 |
               | 0 0 0 |
               | 0 0 0 |
               | 0 0 0 |

                               7
o31 : ZZ-module, quotient of ZZ
i32 : assert (rank coker fromCDivToWDiv Y === 4)

To avoid duplicate computations, the attribute is cached in the normal toric variety.

See also

Ways to use this method: