Normal Toric Schemes
Constructors
We provide the following constructors for toric covered schemes:
toric_covered_scheme
— Methodtoric_covered_scheme(antv::AffineNormalToricVariety)
Constructs the toric covered scheme associated to an affine toric variety.
Examples
julia> C = positive_hull([1 0; 0 1])
Polyhedral cone in ambient dimension 2
julia> antv = affine_normal_toric_variety(C)
Normal, affine toric variety
julia> toric_covered_scheme(antv)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[1, 0], [0, 1]]
toric_covered_scheme
— Methodtoric_covered_scheme(ntv::NormalToricVariety)
Constructs the toric covered scheme associated to a normal toric variety.
Examples
julia> ntv = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor
julia> toric_covered_scheme(ntv)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[1, 0], [0, 1], [-1, -1]]
Special constructors
We support constructors for a couple of famous geometries:
affine_space
— Methodaffine_space(::Type{ToricCoveredScheme}, d::Int; set_attributes::Bool = true)
Constructs the affine space of dimension d
as toric (covered) scheme.
Examples
julia> affine_space(ToricCoveredScheme, 2)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[1, 0], [0, 1]]
projective_space
— Methodprojective_space(::Type{ToricCoveredScheme}, d::Int; set_attributes::Bool = true)
Construct the projective space of dimension d
as toric (covered) scheme.
Examples
julia> projective_space(ToricCoveredScheme, 2)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[1, 0], [0, 1], [-1, -1]]
weighted_projective_space
— Methodweighted_projective_space(::Type{ToricCoveredScheme}, w::Vector{T}; set_attributes::Bool = true) where {T <: IntegerUnion}
Construct the weighted projective space corresponding to the weights w
as toric (covered) scheme.
Examples
julia> weighted_projective_space(ToricCoveredScheme, [2,3,1])
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[-1, 1//3], [1, -1//2], [0, 1]]
hirzebruch_surface
— Methodhirzebruch_surface(::Type{ToricCoveredScheme}, r::Int; set_attributes::Bool = true)
Constructs the r-th Hirzebruch surface as toric (covered) scheme.
Examples
julia> hirzebruch_surface(ToricCoveredScheme, 5)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[1, 0], [0, 1], [-1, 5], [0, -1]]
del_pezzo_surface
— Methoddel_pezzo_surface(::Type{ToricCoveredScheme}, b::Int; set_attributes::Bool = true)
Constructs the del Pezzo surface with b
blowups for b
at most 3 as toric (covered) scheme.
Examples
julia> del_pezzo_surface(ToricCoveredScheme, 3)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[1, 0], [0, 1], [-1, -1], [1, 1], [0, -1], [-1, 0]]
Attributes
We overload the following attributes from the underlying toric variety:
- $affine_open_covering(X::ToricCoveredScheme)$,
- $character_lattice(X::ToricCoveredScheme)$,
- $character_to_rational_function(R::MPolyRing, X::ToricCoveredScheme, character::Vector{ZZRingElem})$,
- $character_to_rational_function(X::ToricCoveredScheme, character::Vector{ZZRingElem})$,
- $class_group(X::ToricCoveredScheme)$,
- $coefficient_ring(X::ToricCoveredScheme)$,
- $coordinate_names(X::ToricCoveredScheme)$,
- $coordinate_names_of_torus(X::ToricCoveredScheme)$,
- $coordinate_ring_of_torus(R::MPolyRing, X::ToricCoveredScheme)$,
- $coordinate_ring_of_torus(X::ToricCoveredScheme)$,
- $cox_ring(R::MPolyRing, X::ToricCoveredScheme)$,
- $cox_ring(X::ToricCoveredScheme)$,
- $dim(X::ToricCoveredScheme)$,
- $dim_of_torusfactor(X::ToricCoveredScheme)$,
- $euler_characteristic(X::ToricCoveredScheme)$,
- $fan(X::ToricCoveredScheme)$,
- $ideal_of_linear_relations(R::MPolyRing, X::ToricCoveredScheme)$,
- $ideal_of_linear_relations(X::ToricCoveredScheme)$,
- $irrelevant_ideal(R::MPolyRing, X::ToricCoveredScheme)$,
- $irrelevant_ideal(X::ToricCoveredScheme)$,
- $map_from_character_lattice_to_torusinvariant_weil_divisor_group(X::ToricCoveredScheme)$,
- $map_from_torusinvariant_cartier_divisor_group_to_picard_group(X::ToricCoveredScheme)$,
- $map_from_torusinvariant_cartier_divisor_group_to_torusinvariant_weil_divisor_group(X::ToricCoveredScheme)$,
- $map_from_torusinvariant_weil_divisor_group_to_class_group(X::ToricCoveredScheme)$,
- $mori_cone(X::ToricCoveredScheme)$,
- $nef_cone(X::ToricCoveredScheme)$,
- $picard_group(X::ToricCoveredScheme)$,
- $set_coordinate_names(X::ToricCoveredScheme)$,
- $set_coordinate_names_of_torus(X::ToricCoveredScheme)$,
- $stanley_reisner_ideal(R::MPolyRing, X::ToricCoveredScheme)$,
- $stanley_reisner_ideal(X::ToricCoveredScheme)$,
- $torusinvariant_cartier_divisor_group(X::ToricCoveredScheme)$,
- $torusinvariant_prime_divisors(X::ToricCoveredScheme)$,
- $torusinvariant_weil_divisor_group(X::ToricCoveredScheme)$,
- $underlying_toric_variety(X::ToricCoveredScheme)$.
It is possible to forget the toric origin, i.e. one can turn a toric scheme into a scheme. This is achieved with the following method:
underlying_scheme
— Methodunderlying_scheme(X::ToricCoveredScheme)
For a toric covered scheme $X$, this returns the underlying scheme. In other words, by applying this method, you obtain a scheme that has forgotten its toric origin.
Examples
julia> P2 = projective_space(NormalToricVariety, 2)
Normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor
julia> toric_scheme = ToricCoveredScheme(P2)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[1, 0], [0, 1], [-1, -1]]
julia> underlying_scheme(toric_scheme)
covered scheme with 3 affine patches in its default covering
Properties
The following properties are overloaded from the underlying toric variety:
- $is_finalized(X::ToricCoveredScheme)$,
- $is_normal(X::ToricCoveredScheme)$,
- $is_affine(X::ToricCoveredScheme)$,
- $is_projective(X::ToricCoveredScheme)$,
- $is_projective_space(X::ToricCoveredScheme)$,
- $is_smooth(X::ToricCoveredScheme)$,
- $is_complete(X::ToricCoveredScheme)$,
- $has_torusfactor(X::ToricCoveredScheme)$,
- $is_orbifold(X::ToricCoveredScheme)$,
- $is_simplicial(X::ToricCoveredScheme)$,
- $is_gorenstein(X::ToricCoveredScheme)$,
- $is_q_gorenstein(X::ToricCoveredScheme)$,
- $is_fano(X::ToricCoveredScheme)$.