Toric Divisors

Introduction

Toric divisors are those divisors that are invariant under the torus action. They are formal sums of the codimension one orbits, and these in turn correspond to the rays of the underlying fan.

Constructors

JToric.ToricDivisorType
ToricDivisor(coeffs::AbstractVector, v::AbstractNormalToricVariety )

Construct the torus invariant divisor on the normal toric variety v as linear combination of the torus invariant prime divisors of v. The coefficients of thi linear combination are passed as list of integers as first argument.

Examples

julia> show( ToricDivisor( [1,1,2], projective_space( 2 ) ) )
A torus invariant divisor on a normal toric variety
source

Properties of toric divisors

JToric.isampleFunction
isample(td::ToricDivisor)

Determine whether the toric divisor td is ample.

Examples

julia> H = hirzebruch_surface(4)
A normal toric variety corresponding to a polyhedral fan in ambient dimension 2

julia> td = ToricDivisor([1,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> isample(td)
false
source
JToric.isbasepoint_freeFunction
isbasepoint_free(td::ToricDivisor)

Determine whether the toric divisor td is basepoint free.

Examples

julia> H = hirzebruch_surface(4)
A normal toric variety corresponding to a polyhedral fan in ambient dimension 2

julia> td = ToricDivisor([1,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> isbasepoint_free(td)
true
source
JToric.iscartierFunction
is_cartier( d::ToricDivisor )

Checks if the divisor d is Cartier.

Examples

julia> H = hirzebruch_surface(4)
A normal toric variety corresponding to a polyhedral fan in ambient dimension 2

julia> td = ToricDivisor([1,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> iscartier(td)
true
source
JToric.iseffectiveMethod
iseffective(td::ToricDivisor)

Determine whether the toric divisor td is effective.

Examples

julia> H = hirzebruch_surface(4)
A normal toric variety corresponding to a polyhedral fan in ambient dimension 2

julia> td = ToricDivisor([1,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> iseffective(td)
true
source
Hecke.isintegralMethod
isintegral(td::ToricDivisor)

Determine whether the toric divisor td is integral.

Examples

julia> H = hirzebruch_surface(4)
A normal toric variety corresponding to a polyhedral fan in ambient dimension 2

julia> td = ToricDivisor([1,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> isintegral(td)
true
source
JToric.isnefFunction
isnef(td::ToricDivisor)

Determine whether the toric divisor td is nef.

Examples

julia> H = hirzebruch_surface(4)
A normal toric variety corresponding to a polyhedral fan in ambient dimension 2

julia> td = ToricDivisor([1,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> isnef(td)
true
source
Hecke.isprincipalFunction
isprincipal(A::NfOrdIdl) -> Bool, NfOrdElem
isprincipal(A::NfOrdFracIdl) -> Bool, NfOrdElem

Tests if $A$ is principal and returns $(\mathtt{true}, \alpha)$ if $A = \langle \alpha\rangle$ or $(\mathtt{false}, 1)$ otherwise.

isprincipal(D::ProjCurveDivisor{S}) where S <: FieldElem

Return true if the divisor D is principal, and false otherwise

Example

julia> S, (x, y, z) = PolynomialRing(QQ, ["x", "y", "z"])
(Multivariate Polynomial Ring in x, y, z over Rational Field, fmpq_mpoly[x, y, z])

julia> T, _ = grade(S)
(Multivariate Polynomial Ring in x, y, z over Rational Field graded by
  x -> [1]
  y -> [1]
  z -> [1], MPolyElem_dec{fmpq, fmpq_mpoly}[x, y, z])

julia> C = Oscar.ProjPlaneCurve(T(y^2*z - x*(x-z)*(x+3*z)))
Projective plane curve defined by -x^3 - 2*x^2*z + 3*x*z^2 + y^2*z


julia> PP = projective_space(QQ, 2)
(Projective space of dim 2 over Rational Field
, MPolyElem_dec{fmpq, fmpq_mpoly}[x[0], x[1], x[2]])

julia> P = Oscar.Geometry.ProjSpcElem(PP[1], [QQ(0), QQ(1), QQ(0)])
(0 : 1 : 0)

julia> E = Oscar.ProjCurveDivisor(C, P)
(0 : 1 : 0)

julia> Oscar.isprincipal(E)
false
isprincipal(td::ToricDivisor)

Determine whether the toric divisor td is principal.

Examples

julia> H = hirzebruch_surface(4)
A normal toric variety corresponding to a polyhedral fan in ambient dimension 2

julia> td = ToricDivisor([1,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> isprincipal(td)
false
source
JToric.isq_cartierFunction
isq_cartier(td::ToricDivisor)

Determine whether the toric divisor td is Q-Cartier.

Examples

julia> H = hirzebruch_surface(4)
A normal toric variety corresponding to a polyhedral fan in ambient dimension 2

julia> td = ToricDivisor([1,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> isq_cartier(td)
true
source
JToric.isvery_ampleFunction
isvery_ample(td::ToricDivisor)

Determine whether the toric divisor td is very ample.

Examples

julia> H = hirzebruch_surface(4)
A normal toric variety corresponding to a polyhedral fan in ambient dimension 2

julia> td = ToricDivisor([1,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> isvery_ample(td)
false
source
JToric.polyhedron_of_divisorMethod
polyhedron_of_divisor(td::ToricDivisor)

Construct the polyhedron $P_D$ of a torus invariant divisor $D:=td$ as in 4.3.2 of CLS11. The lattice points of this polyhedron correspond to the global sections of the divisor.

Examples

The polyhedron of the divisor with all coefficients equal to zero is a point, if the ambient variety is complete. Changing the coefficients corresponds to moving hyperplanes. One direction moves the hyperplane away from the origin, the other moves it across. In the latter case there are no global sections anymore and the polyhedron becomes empty.

julia> H = hirzebruch_surface(4)
A normal toric variety corresponding to a polyhedral fan in ambient dimension 2

julia> td0 = ToricDivisor([0,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> isfeasible(polyhedron_of_divisor(td0))
true

julia> dim(polyhedron_of_divisor(td0))
0

julia> td1 = ToricDivisor([1,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> isfeasible(polyhedron_of_divisor(td1))
true

julia> td2 = ToricDivisor([-1,0,0,0], H)
A torus invariant divisor on a normal toric variety

julia> isfeasible(polyhedron_of_divisor(td2))
false
source