Toric Line Bundles

Constructors

Generic constructors

toric_line_bundleMethod
toric_line_bundle(v::AbstractNormalToricVariety, picard_class::GrpAbFinGenElem)

Construct the line bundle on the abstract normal toric variety with given class in the Picard group of the toric variety in question.

Examples

julia> P2 = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = toric_line_bundle(P2, picard_group(P2)([1]))
Toric line bundle on a normal toric variety
source
toric_line_bundleMethod
toric_line_bundle(v::AbstractNormalToricVariety, picard_class::Vector{T}) where {T <: IntegerUnion}

Construct the line bundle on the abstract normal toric variety v with class c in the Picard group of v.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety
source
toric_line_bundleMethod
toric_line_bundle(v::AbstractNormalToricVariety, d::ToricDivisor)

Construct the toric variety associated to a (Cartier) torus-invariant divisor d on the normal toric variety v.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = toric_line_bundle(v, toric_divisor(v, [1, 2, 3]))
Toric line bundle on a normal toric variety
source
toric_line_bundleMethod
toric_line_bundle(d::ToricDivisor)

Construct the toric variety associated to a (Cartier) torus-invariant divisor d.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> d = toric_divisor(v, [1, 2, 3]);

julia> l = toric_line_bundle(d)
Toric line bundle on a normal toric variety
source
toric_line_bundleMethod
toric_line_bundle(v::AbstractNormalToricVariety, dc::ToricDivisorClass)

Construct the toric variety associated to a divisor class in the class group of a toric variety.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> d = toric_divisor(v, [1, 2, 3])
Torus-invariant, non-prime divisor on a normal toric variety

julia> dc = toric_divisor_class(d)
Divisor class on a normal toric variety

julia> l = toric_line_bundle(v, dc)
Toric line bundle on a normal toric variety
source
toric_line_bundleMethod
toric_line_bundle(dc::ToricDivisorClass)

Construct the toric variety associated to a divisor class in the class group of a toric variety.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> d = toric_divisor(v, [1, 2, 3])
Torus-invariant, non-prime divisor on a normal toric variety

julia> dc = toric_divisor_class(d)
Divisor class on a normal toric variety

julia> l = toric_line_bundle(dc)
Toric line bundle on a normal toric variety
source

Tensor products

Toric line bundles can be tensored via *. The n-th tensor power can be computed via ^n. In particular, ^(-1) computes the inverse of a line bundle. Alternatively, one can compute the inverse by invoking inv.

Special line bundles

anticanonical_bundleMethod
anticanonical_bundle(v::AbstractNormalToricVariety)

Construct the anticanonical bundle of a normal toric variety. For convenience, we also support anticanonical_bundle(variety).

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> anticanonical_bundle(v)
Toric line bundle on a normal toric variety
source
canonical_bundleMethod
canonical_bundle(v::AbstractNormalToricVariety)

Construct the canonical bundle of a normal toric variety. For convenience, we also support canonical_bundle(variety).

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> canonical_bundle(v)
Toric line bundle on a normal toric variety
source
structure_sheafMethod
structure_sheaf(v::AbstractNormalToricVariety)

Construct the structure sheaf of a normal toric variety. For convenience, we also support structure_sheaf(variety).

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> structure_sheaf(v)
Toric line bundle on a normal toric variety
source

Properties

Equality of toric line bundles can be tested via ==.

To check if a toric line bundle is trivial, one can invoke is_trivial. Beyond this, we support the following properties of toric line bundles:

is_basepoint_freeMethod
is_basepoint_free(l::ToricLineBundle)

Return true if the toric line bundle l is basepoint free and false otherwise.

Examples

julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor

julia> is_basepoint_free(toric_line_bundle(F4, [1, 0]))
true
source
is_ampleMethod
is_ample(l::ToricLineBundle)

Return true if the toric line bundle l is ample and false otherwise.

Examples

julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor

julia> is_ample(toric_line_bundle(F4, [1,0]))
false
source
is_very_ampleMethod
is_very_ample(l::ToricLineBundle)

Return true if the toric line bundle l is very ample and false otherwise.

Examples

julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor

julia> is_very_ample(toric_line_bundle(F4, [1,0]))
false
source

Attributes

degreeMethod
degree(l::ToricLineBundle)

Return the degree of the toric line bundle l.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety

julia> degree(l)
2
source
picard_classMethod
picard_class(l::ToricLineBundle)

Return the class in the Picard group which defines the toric line bundle l.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety

julia> picard_class(l)
Element of
GrpAb: Z
with components [2]
source
toric_divisorMethod
toric_divisor(l::ToricLineBundle)

Return a toric divisor corresponding to the toric line bundle l.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety

julia> toric_divisor(l)
Torus-invariant, cartier, non-prime divisor on a normal toric variety

julia> is_cartier(toric_divisor(l))
true
source
toric_divisor_classMethod
toric_divisor_class(l::ToricLineBundle)

Return a divisor class in the Class group corresponding to the toric line bundle l.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety

julia> toric_divisor(l)
Torus-invariant, cartier, non-prime divisor on a normal toric variety

julia> is_cartier(toric_divisor(l))
true
source
toric_varietyMethod
toric_variety(l::ToricLineBundle)

Return the toric variety over which the toric line bundle l is defined.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety

julia> toric_variety(l)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor
source

Methods

basis_of_global_sections_via_rational_functionsMethod
basis_of_global_sections_via_rational_functions(l::ToricLineBundle)

Return a basis of the global sections of the toric line bundle l in terms of rational functions.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety

julia> basis_of_global_sections_via_rational_functions(l)
6-element Vector{MPolyQuoRingElem{QQMPolyRingElem}}:
 x1_^2
 x2*x1_^2
 x2^2*x1_^2
 x1_
 x2*x1_
 1
source
basis_of_global_sections_via_homogeneous_componentMethod
basis_of_global_sections_via_homogeneous_component(l::ToricLineBundle)

Return a basis of the global sections of the toric line bundle l in terms of a homogeneous component of the Cox ring of toric_variety(l). For convenience, this method can also be called via basis_of_global_sections(l::ToricLineBundle).

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety

julia> basis_of_global_sections_via_homogeneous_component(l)
6-element Vector{MPolyDecRingElem{QQFieldElem, QQMPolyRingElem}}:
 x3^2
 x2*x3
 x2^2
 x1*x3
 x1*x2
 x1^2

julia> basis_of_global_sections(l)
6-element Vector{MPolyDecRingElem{QQFieldElem, QQMPolyRingElem}}:
 x3^2
 x2*x3
 x2^2
 x1*x3
 x1*x2
 x1^2
source