Toric Line Bundles

Constructors

Generic constructors

toric_line_bundleMethod
toric_line_bundle(v::NormalToricVarietyType, picard_class::FinGenAbGroupElem)

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 toric variety

julia> pc = picard_group_with_map(P2)[1];

julia> l = toric_line_bundle(P2, pc([1]))
Toric line bundle on a normal toric variety
source
toric_line_bundleMethod
toric_line_bundle(v::NormalToricVarietyType, 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 toric variety

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

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

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety

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 line bundle associated to a Cartier torus-invariant divisor d.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety

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::NormalToricVarietyType, dc::ToricDivisorClass)

Construct the toric line bundle associated to a Cartier divisor class on the normal toric variety v.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety

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 line bundle associated to a Cartier divisor class.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety

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::NormalToricVarietyType)

Construct the anticanonical bundle of a normal toric variety.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety

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

Construct the canonical bundle of a normal toric variety.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety

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

Construct the structure sheaf of a normal toric variety.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety

julia> structure_sheaf(v)
Toric line bundle on a normal toric variety
source
trivial_line_bundleMethod
trivial_line_bundle(v::NormalToricVarietyType)

Construct the trivial line bundle on a normal toric variety.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety

julia> l = trivial_line_bundle(v)
Toric line bundle on a normal toric variety

julia> is_trivial(l)
true
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_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 toric variety

julia> is_ample(toric_line_bundle(F4, [1,0]))
false
source
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 toric variety

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

Return true if all sheaf cohomologies of l are trivial and false otherwise.

Examples

julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal toric variety

julia> l = toric_line_bundle(F4, [1,0])
Toric line bundle on a normal toric variety

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

julia> sheaf_cohomology(l)
3-element Vector{ZZRingElem}:
 2
 0
 0
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 toric variety

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

Attributes

coefficientsMethod
coefficients(l::ToricLineBundle)

Return the coefficients of the chosen toric divisor representative of l.

source
degreeMethod
degree(l::ToricLineBundle)

Return the degree of the toric line bundle l when the Picard group of the underlying toric variety is free of rank one. The degree is the coefficient of the Picard class with respect to the chosen generator of the Picard group. An error is raised otherwise.

Examples

julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety

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

julia> degree(l)
2
source
divisor_classMethod
divisor_class(l::ToricLineBundle)

Return the element of the class group represented by the toric line bundle l.

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 toric variety

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

julia> picard_class(l)
Abelian group element [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 toric variety

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 toric variety

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 toric variety

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

julia> toric_variety(l)
Normal toric variety without torusfactors
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 toric variety

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 toric variety

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
generic_sectionMethod
generic_section(l::ToricLineBundle; range::UnitRange{Int64} = -10000:10000, rng::AbstractRNG = Random.default_rng())

Return a generic section of the toric line bundle l, that is return the sum of all elements basis_of_global_sections(l), each multiplied by a random integer.

The optional keyword argument range can be used to set the range of the random integers, e.g., generic_section(l, range = -100:100)

The random source used to create random coefficients can be set with the optional argument rng.

Examples

julia> using Random;

julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety

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

julia> s = generic_section(l, rng = Random.Xoshiro(1234));

julia> parent(s) == cox_ring(toric_variety(l))
true
source