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 = projectiveSpace 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) |