LDP Polygons
An LDP polygon is a lattice polygon with primitive vertices containing the origin in its interior. LDP polygons correspond to toric log del Pezzo surfaces. In this package, we call more generally a $k$-rational polygon LDP, if it contains the origin in its interior and its $k$-fold multiple has primitive vertices. With this definition, the $k$-rational LDP polygons with exactly one interior lattice point correspond to the toric del Pezzo surfaces with at most $\frak{1}{k}$-log canonical singularities. Here, we list some properties of LDP polygons that correspond to meaningful invariants of the associated toric del Pezzo surface.
RationalPolygons.contains_origin_in_interior
— Functioncontains_origin_in_interior(P :: RationalPolygon)
Check whether P
contains the origin in its interior.
RationalPolygons.is_primitive
— Methodis_primitive(P :: RationalPolygon)
Check whether all vertices of the scaled lattice polygon rationality(P) * P
are primitive.
RationalPolygons.is_ldp
— Functionis_ldp(P :: RationalPolygon)
Check whether P
is a ldp polygon, i.e. is primitive and contains the origin in its interior.
RationalPolygons.multiplicity
— Methodmultiplicity(P :: RationalPolygon{T}, i :: Int) where {T <: Integer}
The index of the sublattice spanned by the i
-th and i+1
-th scaled vertex of P
(i.e. the determinant of those two vertices). For ldp polygons, this equals the order of the local class group associated with the toric fixed point associated to the i
-th and i+1
-th ray.
RationalPolygons.multiplicity
— Methodmultiplicity(P :: RationalPolygon{T,N}) where {N,T <: Integer}
The order of the sublattice spanned by the scaled vertices of P
. For ldp polygons, this equals the order of the torsion part of the divisors class group of the associated toric surface.
RationalPolygons.is_smooth
— Functionis_smooth(P :: RationalPolygon, i :: Int)
Check whether the cone spanned by the i
-th and i+1
-th vertex of P
is regular, i.e. generates the entire lattice. For ldp polygons, this means that the toric fixed point associated to the i
-th and i+1
-th ray is smooth.
is_smooth(P :: RationalPolygon)
Check whether all cones of the face fan of P
are regular. For ldp polygons, this means that the associated toric surface is smooth.
RationalPolygons.picard_index
— Functionpicard_index(P :: RationalPolygon{T,N}) where {N,T <: Integer}
The product of all local multiplicities of P
divided by the global multiplicity. For ldp polygons, this equals the index of the Picard group inside the divisor class group of the associated toric surface, see [4].
RationalPolygons.gorenstein_index
— Functiongorenstein_index(P :: RationalPolygon{T}, i :: Int)
The multiplicity of P
divided by gcd(w[2] - v[2], v[1] - w[1])
, where v
and w
are the i
-th and i+1
-th scaled vertices of P
respectively. For ldp polygons, this equals the local gorenstein at the toric fixed point associated to the i
-th and i+1
-th ray of P
, see e.g. Lemma 3.9 of [5].
gorenstein_index(P :: RationalPolygon{T}) where {T <: Integer}
The least common multiple of the local gorenstein indices of P
. For ldp polygons, this equals the gorenstein index of the associated toric surface.
RationalPolygons.log_canonicity
— Functionlog_canonicity(P :: RationalPolygon)
Given a k
-rational polygon P
, return the maximal rational number 0 < ϵ ≤ 1 such that ε*P contains only one k
-rational point in its interior (the origin). For an ldp polygon, this equals the maximal rational number 0 < ε ≤ 1 such that the associated toric surface is ε-log canonical.
RationalPolygons.toric_prime_divisor_self_intersection
— Functiontoric_prime_divisor_self_intersection(P :: RationalPolygon, i :: Int)
Writing u
, v
and w
for the i-1
-th, i
-th and i+1
-th scaled vertex of P
respectively, return det(w,u) // (det(u,v) * det(v,w))
. For ldp polygons, this equals the self intersection number of the i
-th toric prime divisor, see e.g. Summary 3.2 of [6].
RationalPolygons.toric_prime_divisor_adjacent_intersection
— Functiontoric_prime_divisor_adjacent_intersection(P :: RationalPolygon, i :: Int)
Writing v
and w
for the i
-th and i+1
-th scaled vertex of P
, return 1 // det(v,w)
. For ldp polygons, this equals the intersection number between the i
-th and i+1
-th toric prime divisors.
RationalPolygons.degree
— Methoddegree(P :: RationalPolygon)
For ldp polygons, return the self intersection number of an anticanonocal divisor of the associated toric surface.
Example:
The projective plane has degree 9.
julia> P = convex_hull(LatticePoint{Int}[(1,0),(0,1),(-1,-1)])
Rational polygon of rationality 1 with 3 vertices.
julia> degree(P)
9//1