On a complete normal toric variety, the polyhedron associated to a Cartier divisor is a lattice polytope. Given a torus-invariant Cartier divisor on a normal toric variety, this method returns an integer matrix whose columns correspond to the lattices points contained in the associated polytope. For a non-effective Cartier divisor, this method returns null.
On the projective plane, the associate polytope is either empty, a point, or a triangle.
i1 : PP2 = toricProjectiveSpace 2; |
i2 : assert (null === vertices (-PP2_0)) |
i3 : latticePoints (0*PP2_0) o3 = 0 2 1 o3 : Matrix ZZ <--- ZZ |
i4 : assert isAmple PP2_0 |
i5 : V1 = latticePoints (PP2_0) o5 = | 0 1 0 | | 0 0 1 | 2 3 o5 : Matrix ZZ <--- ZZ |
i6 : X1 = normalToricVariety V1; |
i7 : assert (set rays X1 === set rays PP2 and max X1 === max PP2) |
i8 : assert isAmple (2*PP2_0) |
i9 : V2 = latticePoints (2*PP2_0) o9 = | 0 1 2 0 1 0 | | 0 0 0 1 1 2 | 2 6 o9 : Matrix ZZ <--- ZZ |
i10 : X2 = normalToricVariety(V2, MinimalGenerators => true); |
i11 : assert (rays X2 === rays X1 and max X2 === max X1) |
In this singular example, we see that all the lattice points in the polytope arising from a divisor $2D$ do not come from the lattice points in the polytope arising from $D$.
i12 : Y = normalToricVariety matrix {{0,1,0,0,1},{0,0,1,0,1},{0,0,0,1,1},{0,0,0,0,3}}; |
i13 : D = 3*Y_0; o13 : ToricDivisor on Y |
i14 : latticePoints D o14 = | 0 1 0 0 1 | | 0 0 1 0 1 | | 0 0 0 1 1 | | 0 0 0 0 3 | 4 5 o14 : Matrix ZZ <--- ZZ |
i15 : latticePoints (2*D) o15 = | 0 1 2 0 1 0 0 1 0 0 1 1 2 1 1 2 | | 0 0 0 1 1 2 0 0 1 0 1 1 1 2 1 2 | | 0 0 0 0 0 0 1 1 1 2 1 1 1 1 2 2 | | 0 0 0 0 0 0 0 0 0 0 2 3 3 3 3 6 | 4 16 o15 : Matrix ZZ <--- ZZ |