Toric Schemes

Toric varieties are special instances of schemes. As such, all scheme functionality is available to toric varieties.

Content

We aim for a seamless transition among toric varieties and covered schemes.

One advantage is that we can hope for improved performance of scheme functionality by using toric backends when applicable. In addition, one can apply powerful scheme computations to toric settings, thus extending the available toolkit significantly.

The user can extract the scheme corresponding to a toric variety as follows:

underlying_schemeMethod
underlying_scheme(X::AffineNormalToricVariety)

For an affine toric 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> C = positive_hull([1 0; 0 1])
Polyhedral cone in ambient dimension 2

julia> antv = affine_normal_toric_variety(C)
Normal toric variety

julia> Oscar.underlying_scheme(antv)
Spectrum
of quotient
of multivariate polynomial ring in 2 variables x1, x2
over rational field
by ideal (0)
source
underlying_schemeMethod
underlying_scheme(X::NormalToricVariety)

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

julia> Oscar.underlying_scheme(P2)
Scheme
over rational field
with default covering
described by patches
1: normal toric variety
2: normal toric variety
3: normal toric variety
in the coordinate(s)
1: [x_1_1, x_2_1]
2: [x_1_2, x_2_2]
3: [x_1_3, x_2_3]
source

We also provide functionality to forget the toric structure completely. In this sense, the following methods return the underlying covered scheme, but this scheme does not remember being a toric variety.

forget_toric_structureMethod
forget_toric_structure(X::AffineNormalToricVariety)

Return a pair (Y, iso) where Y is a scheme without toric structure, together with an isomorphism iso : Y → X.

Examples

julia> C = positive_hull([1 0; 0 1])
Polyhedral cone in ambient dimension 2

julia> antv = affine_normal_toric_variety(C)
Normal toric variety

julia> forget_toric_structure(antv)
(scheme(0), Hom: scheme(0) -> normal toric variety)
source
forget_toric_structureMethod
forget_toric_structure(X::NormalToricVariety)

Return a pair (Y, iso) where Y is a scheme without toric structure, together with an isomorphism iso : Y → X.

Examples

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

julia> forget_toric_structure(P2)
(Scheme over QQ covered with 3 patches, Hom: scheme over QQ covered with 3 patches -> normal toric variety)
source