# cotangentSheaf(NormalToricVariety) -- make the sheaf of Zariski 1-forms

## Description

For a normal variety, the sheaf of Zariski 1-forms is defined to be the double dual of the cotangent bundle or equivalently the extension of the sheaf of 1-forms on the smooth locus to the entire variety (the complement of the smooth locus has codimension at least two because the variety is normal). By construction, this sheaf is reflexive with rank equal to the dimension of the variety. When the underlying variety is smooth, this is simple the sheaf of 1-forms or the cotangent bundle.

On a non-degenerate normal toric variety, the sheaf of Zariski 1-forms is associated to the kernel of a map from the character lattice tensor the total coordinate ring to the direct sum over the rays of the quotient of the total coordinate ring by the ideal generated by the corresponding variable.

 `i1 : PP3 = toricProjectiveSpace 3;` ```i2 : OmegaPP3 = cotangentSheaf PP3 o2 = cokernel {2} | x_2 0 0 x_3 | {2} | x_0 x_3 0 0 | {2} | -x_1 0 x_3 0 | {2} | 0 x_1 x_0 0 | {2} | 0 -x_2 0 x_0 | {2} | 0 0 -x_2 -x_1 | 6 o2 : coherent sheaf on normalToricVariety((({{-1, -1, -1}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}} ))))), quotient of OO (-2) normalToricVariety((({{-1, -1, -1}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}} )))))``` `i3 : assert (prune cotangentSheaf PP3 === cotangentSheaf (PP3, Minimize => true))` ```i4 : L = prune exteriorPower (3, OmegaPP3) 1 o4 = OO (-4) normalToricVariety((({{-1, -1, -1}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}} ))))) o4 : coherent sheaf on normalToricVariety((({{-1, -1, -1}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}} )))))``` `i5 : assert (L === OO toricDivisor PP3)` `i6 : assert (L === prune cotangentSheaf (dim PP3, PP3))`
 `i7 : X = hirzebruchSurface 2;` ```i8 : OmegaX = cotangentSheaf X o8 = cokernel {2, 0} | 2x_1x_3 | {-1, 2} | x_0 | {-1, 2} | -x_2 | 1 2 o8 : coherent sheaf on normalToricVariety((({{1, 0}, {0, 1}, {-1, 2}, {0, -1}}(,({{0, 1}, {0, 3}, {1, 2}, {2, 3}} ))))), quotient of OO (-2, 0) ++ OO (1, -2) normalToricVariety((({{1, 0}, {0, 1}, {-1, 2}, {0, -1}}(,({{0, 1}, {0, 3}, {1, 2}, {2, 3}} ))))) normalToricVariety((({{1, 0}, {0, 1}, {-1, 2}, {0, -1}}(,({{0, 1}, {0, 3}, {1, 2}, {2, 3}} )))))``` ```i9 : L = prune exteriorPower(dim X, OmegaX) 1 o9 = OO (0, -2) normalToricVariety((({{1, 0}, {0, 1}, {-1, 2}, {0, -1}}(,({{0, 1}, {0, 3}, {1, 2}, {2, 3}} ))))) o9 : coherent sheaf on normalToricVariety((({{1, 0}, {0, 1}, {-1, 2}, {0, -1}}(,({{0, 1}, {0, 3}, {1, 2}, {2, 3}} )))))``` `i10 : assert (L === OO toricDivisor X)` `i11 : assert (L === prune cotangentSheaf(dim X, X))`
 `i12 : Y = normalToricVariety ({{1,0,0},{0,1,0},{0,0,1},{0,-1,-1},{-1,0,-1},{-2,-1,0}}, {{0,1,2},{0,1,3},{1,3,4},{1,2,4},{2,4,5},{0,2,5},{0,3,5},{3,4,5}});` `i13 : assert (not isSmooth Y and not isProjective Y)` ```i14 : OmegaY = cotangentSheaf Y o14 = cokernel {2, 0, 2} | x_2x_4 2x_0x_4 0 0 0 0 3x_0x_2 0 0 | {2, 2, 0} | -x_1x_5 0 x_0x_5 0 0 0 0 0 3x_0x_1 | {0, 2, 3} | 0 -x_1x_3 -x_2x_3 0 3x_1x_2 0 0 0 0 | {2, 2, 2} | x_3 0 0 3x_0 0 0 0 0 0 | {2, 2, 3} | 0 -x_5 0 0 0 0 0 3x_2 0 | {2, 2, 3} | 0 0 -x_4 0 0 3x_1 0 0 0 | {2, 2, 4} | 0 0 0 -x_4 2x_4 -2x_3 x_3 0 0 | {2, 3, 3} | 0 0 0 -x_5 -x_5 0 0 x_3 -x_3 | {3, 2, 3} | 0 0 0 0 0 -x_5 -x_5 -2x_4 -x_4 | 1 1 1 1 2 1 1 1 o14 : coherent sheaf on normalToricVariety((({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, -1, -1}, {-1, 0, -1}, {-2, -1, 0}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 5}, {0, 3, 5}, {1, 2, 4}, {1, 3, 4}, {2, 4, 5}, {3, 4, 5}} ))))), quotient of OO (-2, 0, -2) ++ OO (-2, -2, 0) ++ OO (0, -2, -3) ++ OO (-2, -2, -2) ++ OO (-2, -2, -3) ++ OO (-2, -2, -4) ++ OO (-2, -3, -3) ++ OO (-3, -2, -3) normalToricVariety((({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, -1, -1}, {-1, 0, -1}, {-2, -1, 0}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 5}, {0, 3, 5}, {1, 2, 4}, {1, 3, 4}, {2, 4, 5}, {3, 4, 5}} ))))) normalToricVariety((({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, -1, -1}, {-1, 0, -1}, {-2, -1, 0}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 5}, {0, 3, 5}, {1, 2, 4}, {1, 3, 4}, {2, 4, 5}, {3, 4, 5}} ))))) normalToricVariety((({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, -1, -1}, {-1, 0, -1}, {-2, -1, 0}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 5}, {0, 3, 5}, {1, 2, 4}, {1, 3, 4}, {2, 4, 5}, {3, 4, 5}} ))))) normalToricVariety((({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, -1, -1}, {-1, 0, -1}, {-2, -1, 0}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 5}, {0, 3, 5}, {1, 2, 4}, {1, 3, 4}, {2, 4, 5}, {3, 4, 5}} ))))) normalToricVariety((({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, -1, -1}, {-1, 0, -1}, {-2, -1, 0}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 5}, {0, 3, 5}, {1, 2, 4}, {1, 3, 4}, {2, 4, 5}, {3, 4, 5}} ))))) normalToricVariety((({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, -1, -1}, {-1, 0, -1}, {-2, -1, 0}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 5}, {0, 3, 5}, {1, 2, 4}, {1, 3, 4}, {2, 4, 5}, {3, 4, 5}} ))))) normalToricVariety((({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, -1, -1}, {-1, 0, -1}, {-2, -1, 0}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 5}, {0, 3, 5}, {1, 2, 4}, {1, 3, 4}, {2, 4, 5}, {3, 4, 5}} ))))) normalToricVariety((({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, -1, -1}, {-1, 0, -1}, {-2, -1, 0}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 5}, {0, 3, 5}, {1, 2, 4}, {1, 3, 4}, {2, 4, 5}, {3, 4, 5}} )))))``` ```i15 : prune exteriorPower(dim Y, OmegaY) 1 o15 = OO (-3, -3, -4) normalToricVariety((({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, -1, -1}, {-1, 0, -1}, {-2, -1, 0}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 5}, {0, 3, 5}, {1, 2, 4}, {1, 3, 4}, {2, 4, 5}, {3, 4, 5}} ))))) o15 : coherent sheaf on normalToricVariety((({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {0, -1, -1}, {-1, 0, -1}, {-2, -1, 0}}(,({{0, 1, 2}, {0, 1, 3}, {0, 2, 5}, {0, 3, 5}, {1, 2, 4}, {1, 3, 4}, {2, 4, 5}, {3, 4, 5}} )))))``` `i16 : assert (prune exteriorPower(dim Y, OmegaY) === OO toricDivisor Y)`