Macaulay2 » Documentation
Packages » NormalToricVarieties :: cartierDivisorGroup(NormalToricVariety)
next | previous | forward | backward | up | index | toc

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

Synopsis

Description

The group of torus-invariant Cartier divisors on $X$ is the subgroup of all locally principal torus-invariant Weil divisors. On a normal toric variety, the group of torus-invariant Cartier divisors can be computed as an inverse limit. More precisely, if $M$ denotes the lattice of characters on $X$ and the maximal cones in the fan of $X$ are $sigma_0, sigma_1, \dots, sigma_{r-1}$, then we have $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 $X$ 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 $\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: