# fromPicToCl(NormalToricVariety) -- get the map from Picard group to class group

## Synopsis

• Usage:
fromPicToCl X
• Function: fromPicToCl
• Inputs:
• Outputs:
• , representing the inclusion map from the Picard group to the class group

## Description

The Picard group of a normal toric variety is a subgroup of the class group. This function returns a matrix representing this map with respect to the chosen bases.

On a smooth normal toric variety, the Picard group is isomorphic to the class group, so the inclusion map is the identity.

 `i1 : PP3 = toricProjectiveSpace 3;` `i2 : assert (isSmooth PP3 and isProjective PP3)` ```i3 : fromPicToCl PP3 o3 = | 1 | 1 1 o3 : Matrix ZZ <--- ZZ``` `i4 : assert (fromPicToCl PP3 === id_(classGroup PP3))`
 `i5 : X = smoothFanoToricVariety (4,90);` `i6 : assert (isSmooth X and isProjective X and isFano X)` ```i7 : fromPicToCl X o7 = | 1 0 0 0 0 | | 0 1 0 0 0 | | 0 0 1 0 0 | | 0 0 0 1 0 | | 0 0 0 0 1 | 5 5 o7 : Matrix ZZ <--- ZZ``` `i8 : assert (fromPicToCl X === id_(classGroup X))`
 `i9 : U = normalToricVariety ({{4,-1},{0,1}},{{0},{1}});` `i10 : assert (isSmooth U and not isComplete U and # max U =!= 1)` ```i11 : fromPicToCl U o11 = | 1 | o11 : Matrix``` `i12 : assert (fromPicToCl U === id_(classGroup U))`

For weighted projective space, the inclusion corresponds to l ℤ in where l = lcm(q0, q1, …, qd ).

 `i13 : P123 = weightedProjectiveSpace {1,2,3};` `i14 : assert (isSimplicial P123 and isProjective P123)` ```i15 : fromPicToCl P123 o15 = | 6 | 1 1 o15 : Matrix ZZ <--- ZZ``` `i16 : assert (fromPicToCl P123 === lcm (1,2,3) * id_(classGroup P123))`
 `i17 : P12234 = weightedProjectiveSpace {1,2,2,3,4};` `i18 : assert (isSimplicial P12234 and isProjective P12234)` ```i19 : fromPicToCl P12234 o19 = | 12 | 1 1 o19 : Matrix ZZ <--- ZZ``` `i20 : assert (fromPicToCl P12234 === lcm (1,2,2,3,4) * id_(classGroup P12234))`

The following examples illustrate some other possibilities.

 `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 and # max Q === 1)` ```i23 : fromPicToCl Q o23 = 0 1 o23 : Matrix ZZ <--- 0``` `i24 : assert (fromPicToCl Q == 0)`
 `i25 : Y = normalToricVariety (id_(ZZ^3) | -id_(ZZ^3));` `i26 : assert (not isSimplicial Y and isProjective Y)` ```i27 : fromPicToCl Y o27 = | 0 | | 0 | | 0 | | 2 | | 2 | | 2 | | 2 | o27 : Matrix```