The group of torus-invariant Cartier divisors on $X$ 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 $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.