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

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

- Function: cartierDivisorGroup
- Usage:
    `cartierDivisorGroup X`
- Inputs:
  - X, a normal toric variety,
- Outputs:
  - a module, a finitely generated abelian group

## 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

- working with divisors -- information about toric divisors and their related groups
- fromCDivToWDiv(NormalToricVariety) -- get the map from Cartier divisors to Weil divisors
- fromCDivToPic(NormalToricVariety) -- get the map from Cartier divisors to the Picard group
- isCartier(ToricDivisor) -- whether a torus-invariant Weil divisor is Cartier
- cartierDivisorGroup(ToricMap) -- make the induced map between groups of Cartier divisors.

## Ways to use this method:

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

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/NormalToricVarieties/DivisorsDocumentation.m2:322:0.