Global Tate models
... over concrete bases
A global Tate model describes a particular form of an elliptic fibration. We focus on elliptic fibrations over base 3-folds $B3$. Consider the weighted projective space $\mathbb{P}^{2,3,1}$ with coordinates $x, y, z$. In addition, consider
- $a_1 \in H^0( B_3, \overline{K}_{B_3} )$,
- $a_2 \in H^0( B_3, \overline{K}_{B_3}^{\otimes 2} )$,
- $a_3 \in H^0( B_3, \overline{K}_{B_3}^{\otimes 3} )$,
- $a_4 \in H^0( B_3, \overline{K}_{B_3}^{\otimes 4} )$,
- $a_6 \in H^0( B_3, \overline{K}_{B_3}^{\otimes 6} )$.
Then form a $\mathbb{P}^{2,3,1}$-bundle over $B3$ such that
- $x$ transforms as a section of $2 \overline{K}_{B_3}$,
- $y$ transforms as a section of $3 \overline{K}_{B_3}$,
- $z$ transforms as a section of $0 \overline{K}_{B_3} = \mathcal{O}_{B_3}$.
In this 5-fold ambient space, a global Tate model is the hypersurface defined by the vanishing of the Tate polynomial $P_T = x^3 - y^2 - x y z a_1 + x^2 z^2 a_2 - y z^3 a_3 + x z^4 a_4 + z^6 a_6$.
Just as for Weierstrass models, our constructors construct for a given toric 3-fold one ambient space for the Tate model in question. As mentioned for Weierstrass models, there can exist other ambient spaces. Also, note that the ambient space constructed by our methods need not be smooth.
We support the following constructors:
FTheoryTools.global_tate_model
— Methodglobal_tate_model(base::Oscar.AbstractNormalToricVariety)
This method constructs a global Tate model over a given toric base 3-fold. The Tate sections $a_i$ are taken with (pseudo) random coefficients.
Examples
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> is_smooth(toric_ambient_space(t))
false
FTheoryTools.global_tate_model_over_projective_space
— Methodglobal_tate_model_over_projective_space()
This method constructs a global Tate model over the 3-dimensional projective space.
Examples
julia> using Oscar
julia> global_tate_model_over_projective_space()
A global Tate model over a concrete base
FTheoryTools.global_tate_model
— Methodglobal_tate_model(ais::Vector{T}, base::Oscar.AbstractNormalToricVariety) where {T<:MPolyElem{fmpq}}
This method operates analogously to global_tate_model(base::Oscar.AbstractNormalToricVariety)
. The only difference is that the Tate sections $a_i$ can be specified with non-generic values.
Examples
julia> using Oscar
julia> base = test_base()
A normal toric variety
julia> a1 = sum([rand(Int) * b for b in basis_of_global_sections(anticanonical_bundle(base))]);
julia> a2 = sum([rand(Int) * b for b in basis_of_global_sections(anticanonical_bundle(base)^2)]);
julia> a3 = sum([rand(Int) * b for b in basis_of_global_sections(anticanonical_bundle(base)^3)]);
julia> a4 = sum([rand(Int) * b for b in basis_of_global_sections(anticanonical_bundle(base)^4)]);
julia> a6 = sum([rand(Int) * b for b in basis_of_global_sections(anticanonical_bundle(base)^6)]);
julia> t = global_tate_model([a1, a2, a3, a4, a6], base)
A global Tate model over a concrete base
julia> is_smooth(toric_ambient_space(t))
false
... over not fully specified bases
This method constructs a global Tate model over a base space that is not fully specified. Rather, it assumes that a base space exists such that the Tate sections $a_i$ are well-defined so that the Tate model in question is well-defined.
For many practical applications, one wishes to assume a further factorization of the Tate sections $a_i$. This has the advantage that one can engineer singularity loci or even the singularity type over a specific locus. This is the backbone of many F-theory constructions.
To this end, this method accepts a polynomial ring whose variables are the sections used in the desired factorization of the Tate sections $a_i$. For example, if we desired a factorization:
- $a_1 = a_{10} w^0$,
- $a_2 = a_{21} w^1$,
- $a_3 = a_{32} w^2$,
- $a_4 = a_{43} w^3$,
- $a_6 = a_{65} w^5$,
then the polynomial ring in question is the ring with indeterminates $a_{10}$, $a_{21}$, $a_{32}$, $a_{43}$, $a_{65}$ and $w$.
In theory, one can consider these indeterminates as local coordinate of the base space. For the computer implementation, this ring will therefore serve as the coordinate ring of an auxiliary toric base space, namely an affine space with those coordinates.
Such geometries can be constructed with the following constructor:
FTheoryTools.global_tate_model
— Methodglobal_tate_model(ais::Vector{T}, auxiliary_base_ring::MPolyRing, d::Int) where {T<:MPolyElem{fmpq}}
This method constructs a global Tate model over a base space that is not fully specified. The following example exemplifies this approach.
Examples
julia> using Oscar
julia> auxiliary_base_ring, (a10, a21, a32, a43, a65, w) = QQ["a10", "a21", "a32", "a43", "a65", "w"];
julia> a1 = a10;
julia> a2 = a21 * w;
julia> a3 = a32 * w^2;
julia> a4 = a43 * w^3;
julia> a6 = a65 * w^5;
julia> ais = [a1, a2, a3, a4, a6];
julia> t = global_tate_model(ais, auxiliary_base_ring, 3)
A global Tate model over a not fully specified base
julia> tate_polynomial(t)
-a10*x*y*z + a21*w*x^2*z^2 - a32*w^2*y*z^3 + a43*w^3*x*z^4 + a65*w^5*z^6 + x^3 - y^2
julia> toric_base_space(t)
[ Info: Base space was not fully specified. Returning AUXILIARY base space.
A normal toric variety
julia> toric_ambient_space(t)
[ Info: Base space was not fully specified. Returning AUXILIARY ambient space.
A normal, simplicial toric variety
julia> dim(toric_ambient_space(t))
5
Attributes
For all Tate models, we support the following attributes:
FTheoryTools.tate_section_a1
— Methodtate_section_a1(t::GlobalTateModel)
Return the Tate section $a_1$.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> tate_section_a1(t);
FTheoryTools.tate_section_a2
— Methodtate_section_a2(t::GlobalTateModel)
Return the Tate section $a_2$.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> tate_section_a2(t);
FTheoryTools.tate_section_a3
— Methodtate_section_a3(t::GlobalTateModel)
Return the Tate section $a_3$.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> tate_section_a3(t);
FTheoryTools.tate_section_a4
— Methodtate_section_a4(t::GlobalTateModel)
Return the Tate section $a_4$.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> tate_section_a4(t);
FTheoryTools.tate_section_a6
— Methodtate_section_a6(t::GlobalTateModel)
Return the Tate section $a_6$.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> tate_section_a6(t);
FTheoryTools.tate_polynomial
— Methodtate_polynomial(t::GlobalTateModel)
Return the Tate polynomial of the global Tate model.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> tate_polynomial(t);
FTheoryTools.cy_hypersurface
— Methodcy_hypersurface(t::GlobalTateModel)
Return the Calabi-Yau hypersurface in the toric ambient space which defines the global Tate model.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> cy_hypersurface(t)
A closed subvariety of a normal toric variety
FTheoryTools.global_weierstrass_model
— Methodglobal_weierstrass_model(t::GlobalTateModel)
Return the global Weierstrass model which is equivalent to the given Tate model.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> global_weierstrass_model(t)
A global Weierstrass model over a concrete base
AbstractAlgebra.discriminant
— Methoddiscriminant(t::GlobalTateModel)
Return the discriminant of the global Tate model.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> discriminant(t);
In case the Tate model is constructed over a not fully specified base, it is nonetheless possible to construct an auxiliary base space as well as an auxiliary ambient space. The (auxiliary) base and ambient space can be accessed with the following functions:
FTheoryTools.toric_base_space
— Methodtoric_base_space(t::GlobalTateModel)
Return the toric base space of the global Tate model.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> toric_base_space(t)
A normal toric variety without torusfactor
FTheoryTools.toric_ambient_space
— Methodtoric_ambient_space(t::GlobalTateModel)
Return the toric ambient space of the global Tate model.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> toric_ambient_space(t)
A normal, simplicial toric variety
julia> is_smooth(toric_ambient_space(t))
false
To tell if they are auxiliary or not, one can use base_fully_specified(t)
, which returns true
in case the Tate model is defined over a concrete base and false
otherwise.
Properties
FTheoryTools.base_fully_specified
— Methodbase_fully_specified(t::GlobalTateModel)
Return true
is the Tate model has a concrete base space and false
otherwise.
julia> using Oscar
julia> t = global_tate_model(test_base())
A global Tate model over a concrete base
julia> base_fully_specified(t)
true
Singular loci
For applications in F-theory, singular elliptic fibrations are key (cf. Timo Weigand (2018) and references therein). The general approach is to not work with the singular space directly. Rather, one resolves the singularities in order to obtain a smooth space instead. Subsequently, one performs computations on this smooth space.
In this sense, knowledge of the singular loci is a first step to a successful analysis of such a geometry. For this, we provide the following functionality.
FTheoryTools.singular_loci
— Methodsingular_loci(t::GlobalTateModel)
Return the singular loci of the global Tate model, along with the order of vanishing of $(f, g, \Delta)$` at each locus and the refined Tate fiber type.
For the time being, we either explicitly or implicitly focus on toric varieties as base spaces. Explicitly, in case the user provides such a variety as base space, and implicitly, in case we work over a non-fully specified base. This has the advantage that we can "filter out" trivial singular loci.
Specifically, recall that every closed subvariety of a simplicial toric variety is of the form $V(I)$, where $I$ is a homogeneous ideal of the Cox ring. Let $B$ be the irrelevant ideal of this toric variety. Then, by proposition 5.2.6. of David A. Cox, John B. Little, Henry K. Schenck (2011), $V(I)$ is trivial/empty iff $B^l \subseteq I$ for a suitable $l \geq 0$. This can be checked by checking if the saturation $I:B^\infty$ is the ideal generated by $1$.
By treating a non-fully specified base space implicitly as a toric space, we can extend this result straightforwardly to this situation also. This is the reason for constructing this auxiliary base space.
Let us demonstrate the functionality by computing the singular loci of a Type $III$ Tate model Sheldon Katz, David R. Morrison, Sakura Schafer-Nameki, James Sully (2011). In this case, we will consider a global Tate model over a non-fully specified base. The Tate sections are factored as follows:
- $a_1 = a_{11} w^1$,
- $a_2 = a_{21} w^1$,
- $a_3 = a_{31} w^1$,
- $a_4 = a_{41} w^1$,
- $a_6 = a_{62} w^2$.
For this factorization, we expect a singularity of Kodaira type $III$ over the divisor $W = {w = 0}$, as desired. So this should be one irreducible component of the discriminant. Moreover, we should find that the discriminant vanishes to order 3 on $W = {w = 0}$, while the Weierstrass sections $f$ and $g$ vanish to orders 1 and 2, respectively. Let us verify this.
julia> using Oscar
julia> auxiliary_base_ring, (a11, a21, a31, a41, a62, w) = QQ["a10", "a21", "a32", "a43", "a65", "w"];
julia> a1 = a11 * w;
julia> a2 = a21 * w;
julia> a3 = a31 * w;
julia> a4 = a41 * w;
julia> a6 = a62 * w^2;
julia> ais = [a1, a2, a3, a4, a6];
julia> t = global_tate_model(ais, auxiliary_base_ring, 3)
A global Tate model over a not fully specified base
julia> length(singular_loci(t))
[ Info: Base space was not fully specified. Returning AUXILIARY ambient space.
[ Info: Base space was not fully specified. Returning AUXILIARY base space.
[ Info: Base space was not fully specified. Returning AUXILIARY base space.
2
julia> singular_loci(t)[2]
(ideal(w), (1, 2, 3), "III")