ToricMorphisms
A class of morphisms among toric varieties are described by certain lattice morphisms. Let $N_1$ and $N_2$ be lattices and $\Sigma_1$, $\Sigma_2$ fans in $N_1$ and $N_2$ respectively. A $\mathbb{Z}$-linear map
\[\overline{\phi} \colon N_1 \to N_2\]
is said to be compatible with the fans $\Sigma_1$ and $\Sigma_2$ if for every cone $\sigma_1 \in \Sigma_1$, there exists a cone $\sigma_2 \in \Sigma_2$ such that $\overline{\phi}_{\mathbb{R}}(\sigma_1) \subseteq \sigma_2$.
By theorem 3.3.4 David A. Cox, John B. Little, Henry K. Schenck (2011), such a map $\overline{\phi}$ induces a morphism $\phi \colon X_{\Sigma_1} \to X_{\Sigma_2}$ of the toric varieties, and those morphisms are exactly the toric morphisms.
Constructors
Generic constructors without specified codomain
toric_morphism
— Methodtoric_morphism(domain::AbstractNormalToricVariety, mapping_matrix::Vector{Vector{T}}, codomain::T2=nothing) where {T <: IntegerUnion, T2 <: Union{AbstractNormalToricVariety, Nothing}}
Construct the toric morphism with given domain and associated to the lattice morphism given by the mapping_matrix
. As optional argument, the codomain of the morphism can be specified.
Examples
julia> domain = projective_space(NormalToricVariety, 1)
Normal, non-affine, smooth, projective, gorenstein, fano, 1-dimensional toric variety without torusfactor
julia> mapping_matrix = [[0, 1]]
1-element Vector{Vector{Int64}}:
[0, 1]
julia> toric_morphism(domain, mapping_matrix)
A toric morphism
toric_morphism
— Methodtoric_morphism(domain::AbstractNormalToricVariety, mapping_matrix::Matrix{T}, codomain::T2=nothing) where {T <: IntegerUnion, T2 <: Union{AbstractNormalToricVariety, Nothing}}
Construct the toric morphism with given domain and associated to the lattice morphism given by the mapping_matrix
. As optional argument, the codomain of the morphism can be specified.
Examples
julia> domain = projective_space(NormalToricVariety, 1)
Normal, non-affine, smooth, projective, gorenstein, fano, 1-dimensional toric variety without torusfactor
julia> mapping_matrix = [0 1]
1×2 Matrix{Int64}:
0 1
julia> toric_morphism(domain, mapping_matrix)
A toric morphism
toric_morphism
— Methodtoric_morphism(domain::AbstractNormalToricVariety, mapping_matrix::ZZMatrix, codomain::T=nothing) where {T <: Union{AbstractNormalToricVariety, Nothing}}
Construct the toric morphism with given domain and associated to the lattice morphism given by the mapping_matrix
. As optional argument, the codomain of the morphism can be specified.
Examples
julia> domain = projective_space(NormalToricVariety, 1)
Normal, non-affine, smooth, projective, gorenstein, fano, 1-dimensional toric variety without torusfactor
julia> codomain = hirzebruch_surface(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> mapping_matrix = matrix(ZZ, [0 1])
[0 1]
julia> toric_morphism(domain, mapping_matrix, codomain)
A toric morphism
toric_morphism
— Methodfunction toric_morphism(domain::AbstractNormalToricVariety, grid_morphism::GrpAbFinGenMap, codomain::T=nothing) where {T <: Union{AbstractNormalToricVariety, Nothing}}
Construct the toric morphism from the domain
to the codomain
with map given by the grid_morphism
. As optional argument, the codomain of the morphism can be specified.
Examples
julia> domain = projective_space(NormalToricVariety, 1)
Normal, non-affine, smooth, projective, gorenstein, fano, 1-dimensional toric variety without torusfactor
julia> codomain = hirzebruch_surface(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> mapping_matrix = matrix(ZZ, [[0, 1]])
[0 1]
julia> grid_morphism = hom(character_lattice(domain), character_lattice(codomain), mapping_matrix)
Map with following data
Domain:
=======
Abelian group with structure: Z
Codomain:
=========
Abelian group with structure: Z^2
julia> toric_morphism(domain, grid_morphism, codomain)
A toric morphism
Generic constructors with specified codomain
toric_morphism
— Methodtoric_morphism(domain::AbstractNormalToricVariety, mapping_matrix::Vector{Vector{T}}, codomain::T2=nothing) where {T <: IntegerUnion, T2 <: Union{AbstractNormalToricVariety, Nothing}}
Construct the toric morphism with given domain and associated to the lattice morphism given by the mapping_matrix
. As optional argument, the codomain of the morphism can be specified.
Examples
julia> domain = projective_space(NormalToricVariety, 1)
Normal, non-affine, smooth, projective, gorenstein, fano, 1-dimensional toric variety without torusfactor
julia> mapping_matrix = [[0, 1]]
1-element Vector{Vector{Int64}}:
[0, 1]
julia> toric_morphism(domain, mapping_matrix)
A toric morphism
toric_morphism
— Methodtoric_morphism(domain::AbstractNormalToricVariety, mapping_matrix::Matrix{T}, codomain::T2=nothing) where {T <: IntegerUnion, T2 <: Union{AbstractNormalToricVariety, Nothing}}
Construct the toric morphism with given domain and associated to the lattice morphism given by the mapping_matrix
. As optional argument, the codomain of the morphism can be specified.
Examples
julia> domain = projective_space(NormalToricVariety, 1)
Normal, non-affine, smooth, projective, gorenstein, fano, 1-dimensional toric variety without torusfactor
julia> mapping_matrix = [0 1]
1×2 Matrix{Int64}:
0 1
julia> toric_morphism(domain, mapping_matrix)
A toric morphism
toric_morphism
— Methodtoric_morphism(domain::AbstractNormalToricVariety, mapping_matrix::ZZMatrix, codomain::T=nothing) where {T <: Union{AbstractNormalToricVariety, Nothing}}
Construct the toric morphism with given domain and associated to the lattice morphism given by the mapping_matrix
. As optional argument, the codomain of the morphism can be specified.
Examples
julia> domain = projective_space(NormalToricVariety, 1)
Normal, non-affine, smooth, projective, gorenstein, fano, 1-dimensional toric variety without torusfactor
julia> codomain = hirzebruch_surface(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> mapping_matrix = matrix(ZZ, [0 1])
[0 1]
julia> toric_morphism(domain, mapping_matrix, codomain)
A toric morphism
toric_morphism
— Methodfunction toric_morphism(domain::AbstractNormalToricVariety, grid_morphism::GrpAbFinGenMap, codomain::T=nothing) where {T <: Union{AbstractNormalToricVariety, Nothing}}
Construct the toric morphism from the domain
to the codomain
with map given by the grid_morphism
. As optional argument, the codomain of the morphism can be specified.
Examples
julia> domain = projective_space(NormalToricVariety, 1)
Normal, non-affine, smooth, projective, gorenstein, fano, 1-dimensional toric variety without torusfactor
julia> codomain = hirzebruch_surface(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> mapping_matrix = matrix(ZZ, [[0, 1]])
[0 1]
julia> grid_morphism = hom(character_lattice(domain), character_lattice(codomain), mapping_matrix)
Map with following data
Domain:
=======
Abelian group with structure: Z
Codomain:
=========
Abelian group with structure: Z^2
julia> toric_morphism(domain, grid_morphism, codomain)
A toric morphism
Special constructors
toric_identity_morphism
— Methodtoric_identity_morphism(variety::AbstractNormalToricVariety)
Construct the toric identity morphism from variety
to variety
.
Examples
julia> toric_identity_morphism(hirzebruch_surface(NormalToricVariety, 2))
A toric morphism
Attributes of Toric Morhpisms
General attributes
domain
— Methoddomain(tm::ToricMorphism)
Return the domain of the toric morphism tm
.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> domain(toric_identity_morphism(F4))
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
image
— Methodimage(tm::ToricMorphism)
Return the image of the toric morphism tm
.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> image(toric_identity_morphism(F4))
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
codomain
— Methodcodomain(tm::ToricMorphism)
Return the codomain of the toric morphism tm
.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> codomain(toric_identity_morphism(F4))
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
grid_morphism
— Methodgrid_morphism(tm::ToricMorphism)
Return the underlying grid morphism of the toric morphism tm
.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> grid_morphism(toric_identity_morphism(F4))
Map with following data
Domain:
=======
Abelian group with structure: Z^2
Codomain:
=========
Abelian group with structure: Z^2
morphism_on_torusinvariant_weil_divisor_group
— Methodmorphism_on_torusinvariant_weil_divisor_group(tm::ToricMorphism)
For a given toric morphism tm
, this method computes the corresponding map of the torusinvariant Weil divisors.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> morphism_on_torusinvariant_weil_divisor_group(toric_identity_morphism(F4))
Map with following data
Domain:
=======
Abelian group with structure: Z^4
Codomain:
=========
Abelian group with structure: Z^4
morphism_on_torusinvariant_cartier_divisor_group
— Methodmorphism_on_torusinvariant_cartier_divisor_group(tm::ToricMorphism)
For a given toric morphism tm
, this method computes the corresponding map of the Cartier divisors.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> morphism_on_torusinvariant_cartier_divisor_group(toric_identity_morphism(F4))
Map with following data
Domain:
=======
Abelian group with structure: Z^4
Codomain:
=========
Abelian group with structure: Z^4
morphism_on_class_group
— Methodmorphism_on_class_group(tm::ToricMorphism)
For a given toric morphism tm
, this method computes the corresponding map of the Class groups.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> morphism_on_class_group(toric_identity_morphism(F4))
Map with following data
Domain:
=======
Abelian group with structure: Z^2
Codomain:
=========
Abelian group with structure: Z^2
morphism_on_picard_group
— Methodmorphism_on_picard_group(tm::ToricMorphism)
For a given toric morphism tm
, this method computes the corresponding map of the Picard groups.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> morphism_on_picard_group(toric_identity_morphism(F4))
Map with following data
Domain:
=======
Abelian group with structure: Z^2
Codomain:
=========
Abelian group with structure: Z^2
Special attributes of toric varieties
To every toric variety $v$ we can associate a special toric variety, the Cox variety. By definition, the Cox variety is such that the mapping matrix of the toric morphism from the Cox variety to the variety $v$ is simply given by the ray generators of the variety $v$. Put differently, if there are exactly $N$ ray generators for the fan of $v$, then the Cox variety of $v$ has a fan for which the ray generators are the standard basis of $\mathbb{R}^N$ and the maximal cones are one to one to the maximal cones of the fan of $v$.
morphism_from_cox_variety
— Methodmorphism_from_cox_variety(variety::AbstractNormalToricVariety)
Return the quotient morphism from the Cox variety to the toric variety in question.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> morphism_from_cox_variety(F4)
A toric morphism
cox_variety
— Methodcox_variety(variety::AbstractNormalToricVariety)
Return the Cox variety of the toric variety in question.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor
julia> cox_variety(F4)
Normal toric variety