# fromCDivToPic(NormalToricVariety) -- get the map from Cartier divisors to the Picard group

## Synopsis

• Usage:
fromCDivToPic X
• Function: fromCDivToPic
• Inputs:
• Outputs:
• , representing the surjective map from the group of torus-invariant Cartier divisors to the Picard group

## Description

The Picard group of a variety is the group of Cartier divisors divided by the subgroup of principal divisors. For a normal toric variety , the Picard group has a presentation defined by the map from the group of torus-characters to the group of torus-invariant Cartier divisors. Hence, there is a surjective map from the group of torus-invariant Cartier divisors to the Picard group. This function returns a matrix representing this map with respect to the chosen bases.

On a smooth normal toric variety, the map from the torus-invariant Cartier divisors to the Picard group is the same as the map from the Weil divisors to the class group.

 `i1 : PP2 = toricProjectiveSpace 2;` `i2 : assert (isSmooth PP2 and isProjective PP2)` ```i3 : fromCDivToPic PP2 o3 = | 1 1 1 | 1 3 o3 : Matrix ZZ <--- ZZ``` `i4 : assert (fromCDivToPic PP2 === fromWDivToCl PP2)`
 `i5 : X = smoothFanoToricVariety (4,20);` `i6 : assert (isSmooth X and isProjective X and isFano X)` ```i7 : fromCDivToPic X o7 = | 1 1 1 -1 0 0 0 | | 0 0 0 1 1 -1 0 | | 0 0 0 0 0 1 1 | 3 7 o7 : Matrix ZZ <--- ZZ``` `i8 : assert (fromCDivToPic X === fromWDivToCl X)`
 `i9 : U = normalToricVariety ({{4,-1},{0,1}},{{0},{1}});` `i10 : assert (isSmooth U and not isComplete U)` ```i11 : fromCDivToPic U o11 = | 1 1 | o11 : Matrix``` `i12 : assert (fromCDivToPic U === fromWDivToCl U)`

In general, there is a commutative diagram relating the map from the group of torus-invariant Cartier divisors to the Picard group and the map from the group of torus-invariant Weil divisors to the class group.

 `i13 : Q = normalToricVariety ({{1,0,0},{0,1,0},{0,0,1},{1,1,-1}},{{0,1,2,3}});` `i14 : assert (not isSimplicial Q and not isComplete Q)` ```i15 : fromCDivToPic Q o15 = 0 3 o15 : Matrix 0 <--- ZZ``` `i16 : assert (fromWDivToCl Q * fromCDivToWDiv Q == fromPicToCl Q * fromCDivToPic Q)`
 `i17 : Y = normalToricVariety (id_(ZZ^3) | -id_(ZZ^3));` `i18 : assert (not isSimplicial Y and isProjective Y)` ```i19 : fromCDivToPic Y o19 = | 0 0 0 1 | 1 4 o19 : Matrix ZZ <--- ZZ``` ```i20 : fromPicToCl Y o20 = | 0 | | 0 | | 0 | | 2 | | 2 | | 2 | | 2 | o20 : Matrix``` ```i21 : fromPicToCl Y * fromCDivToPic Y o21 = | 0 0 0 0 | | 0 0 0 0 | | 0 0 0 0 | | 0 0 0 2 | | 0 0 0 2 | | 0 0 0 2 | | 0 0 0 2 | o21 : Matrix``` ```i22 : fromCDivToWDiv Y o22 = | 1 1 1 1 | | -1 1 1 1 | | 1 -1 1 1 | | -1 -1 1 1 | | 1 1 -1 1 | | -1 1 -1 1 | | 1 -1 -1 1 | | -1 -1 -1 1 | 8 4 o22 : Matrix ZZ <--- ZZ``` ```i23 : fromWDivToCl Y o23 = | 1 0 1 0 0 0 0 0 | | 1 1 0 0 0 0 0 0 | | 1 -1 -1 1 0 0 0 0 | | -1 1 1 0 1 0 0 0 | | 0 0 1 0 0 1 0 0 | | 0 1 0 0 0 0 1 0 | | 1 0 0 0 0 0 0 1 | o23 : Matrix``` `i24 : assert (fromWDivToCl Y * fromCDivToWDiv Y == fromPicToCl Y * fromCDivToPic Y)`