Global Tate models
Introduction
A global Tate model describes a particular form of an elliptic fibration. We focus on an elliptic fibration over a base $B$. 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} )$,
- $a_2 \in H^0( B_3, \overline{K}_{B}^{\otimes 2} )$,
- $a_3 \in H^0( B_3, \overline{K}_{B}^{\otimes 3} )$,
- $a_4 \in H^0( B_3, \overline{K}_{B}^{\otimes 4} )$,
- $a_6 \in H^0( B_3, \overline{K}_{B}^{\otimes 6} )$.
Then form a $\mathbb{P}^{2,3,1}$-bundle over $B$ such that
- $x$ transforms as a section of $2 \overline{K}_{B}$,
- $y$ transforms as a section of $3 \overline{K}_{B}$,
- $z$ transforms as a section of $0 \overline{K}_{B} = \mathcal{O}_{B}$.
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$.
Crucially, for non-trivial F-theory settings, the elliptic fibration in question must be singular. In fact, by construction, one usually engineers certain singularities. For this, vanishing orders of the sections $a_i$ above need to specified. The following table–-often referred to as the Tate table and taken from Timo Weigand (2010)–-summarizes the singularities introduced by certain vanishing orders:
sing. type | $\mathrm{ord}(\Delta)$ | singularity | group $G$ | $a_1$ | $a_2$ | $a_3$ | $a_4$ | $a_6$ |
---|---|---|---|---|---|---|---|---|
$I_0$ | $0$ | $0$ | $0$ | $0$ | $0$ | $0$ | ||
$I_1$ | $1$ | $0$ | $0$ | $1$ | $1$ | $1$ | ||
$I_2$ | $2$ | $A_1$ | $SU(2)$ | $0$ | $0$ | $1$ | $1$ | $2$ |
$I_{2k}^{ns}$ | $2k$ | $C_k$ | $Sp(k)$ | $0$ | $0$ | $k$ | $k$ | $2k$ |
$I_{2k}^s$ | $2k$ | $A_{2k-1}$ | $SU(2k)$ | $0$ | $1$ | $k$ | $k$ | $2k$ |
$I_{2k+1}^{ns}$ | $2k+1$ | $Sp(k)$ | $0$ | $0$ | $k+1$ | $k+1$ | $2k+1$ | |
$I_{2k+1}^{s}$ | $2k+1$ | $A_{2k}$ | $SU(2k+1)$ | $0$ | $1$ | $k$ | $k+1$ | $2k+1$ |
$II$ | $2$ | $1$ | $1$ | $1$ | $1$ | $1$ | ||
$III$ | $3$ | $A_1$ | $SU(2)$ | $1$ | $1$ | $1$ | $1$ | $2$ |
$IV^{ns}$ | $4$ | $Sp(1)$ | $1$ | $1$ | $1$ | $2$ | $2$ | |
$IV^s$ | $4$ | $A_2$ | $SU(3)$ | $1$ | $1$ | $1$ | $2$ | $3$ |
$I_0^{*ns}$ | $6$ | $G_2$ | $G_2$ | $1$ | $1$ | $2$ | $2$ | $3$ |
$I_0^{*ss}$ | $6$ | $B_3$ | $SO(7)$ | $1$ | $1$ | $2$ | $2$ | $4$ |
$I_0^{*s}$ | $6$ | $D_4$ | $SO(8)$ | $1$ | $1$ | $2$ | $2$ | $4$ |
$I_1^{*ns}$ | $7$ | $B_4$ | $SO(9)$ | $1$ | $1$ | $2$ | $3$ | $4$ |
$I_1^{*s}$ | $7$ | $D_5$ | $SO(10)$ | $1$ | $1$ | $2$ | $3$ | $5$ |
$I_2^{*ns}$ | $8$ | $B_5$ | $SO(11)$ | $1$ | $1$ | $3$ | $3$ | $5$ |
$I_2^{*s}$ | $8$ | $D_6$ | $SO(12)$ | $1$ | $1$ | $3$ | $3$ | $5$ |
$I_{2k-3}^{*ns}$ | $2k+3$ | $B_{2k}$ | $SO(4k+1)$ | $1$ | $1$ | $k$ | $k+1$ | $2k$ |
$I_{2k-3}^{*s}$ | $2k+3$ | $D_{2k+1}$ | $SO(4k+2)$ | $1$ | $1$ | $k$ | $k+1$ | $2k+1$ |
$I_{2k-2}^{*ns}$ | $2k+4$ | $B_{2k+1}$ | $SO(4k+3)$ | $1$ | $1$ | $k+1$ | $k+1$ | $2k+1$ |
$I_{2k-2}^{*s}$ | $2k+4$ | $D_{2k+2}$ | $SO(4k+4)$ | $1$ | $1$ | $k+1$ | $k+1$ | $2k+1$ |
$IV^{*ns}$ | $8$ | $F_4$ | $F_4$ | $1$ | $2$ | $2$ | $3$ | $4$ |
$IV^{*s}$ | $8$ | $E_6$ | $E_6$ | $1$ | $2$ | $2$ | $3$ | $5$ |
$III^*$ | $9$ | $E_7$ | $E_7$ | $1$ | $2$ | $3$ | $3$ | $5$ |
$II^*$ | $10$ | $E_8$ | $E_8$ | $1$ | $2$ | $3$ | $4$ | $5$ |
non-min. | $12$ | $1$ | $2$ | $3$ | $4$ | $6$ |
Constructors
We aim to provide support for global Tate models over the following bases:
- a toric variety,
- a toric scheme,
- a (covered) scheme.
Often, one also wishes to obtain information about a global Tate model without explicitly specifying the base space. Also for this application, we provide support. Finally, we provide support for some standard constructions.
Before we detail these constructors, we must comment on the constructors over toric base spaces. Namely, in order to construct a global Tate model as a hypersurface in an ambient space, we first wish to construct the ambient space in question. For a toric base, one way to achieve this is to first focus on the Cox ring of the toric ambient space. This ring must be graded such that the Tate polynomial is homogeneous and cuts out a Calabi-Yau hypersurface. Given this grading, one can perform a triangulation task. Typically, this combinatorial task is very demanding, consumes a lot of computational power and takes a long time to complete. Even more, it will yield a large, often huge, number of candidate ambient spaces of which the typical user will only pick one. For instance, a common and often appropriate choice is a toric ambient space which contains the toric base space in a manifest way.
To circumvent this very demanding computation, our toric constructors operate in the opposite direction. That is, they begin by extracting the rays and maximal cones of the chosen toric base space. Subsequently, those rays and cones are extended to form one of the many toric ambient spaces. This proves hugely superior in performance than going through the triangulation task of enumerating all possible toric ambient spaces. One downside of this strategy is that the so-constructed ambient space need not be smooth.
A toric variety as base space
We require that the provided toric base space is complete. This is a technical limitation as of now. The functionality of OSCAR only allows us to compute a section basis (or a finite subset thereof) for complete toric varieties. In the future, this could be extended.
However, completeness is an expensive check. Therefore, we provide an optional argument which one can use to disable this check if desired. To this end, one passes the optional argument completeness_check = false
as last argument to the constructor. The following examples demonstrate this:
global_tate_model
— Methodglobal_tate_model(base::AbstractNormalToricVariety; completeness_check::Bool = true)
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> t = global_tate_model(sample_toric_variety(); completeness_check = false)
Global Tate model over a concrete base
global_tate_model
— Methodglobal_tate_model(ais::Vector{T}, base::AbstractNormalToricVariety; completeness_check::Bool = true) where {T<:MPolyRingElem}
This method operates analogously to global_tate_model(base::AbstractNormalToricVariety)
. The only difference is that the Tate sections $a_i$ can be specified with non-generic values.
Examples
julia> base = sample_toric_variety()
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; completeness_check = false)
Global Tate model over a concrete base
A toric scheme as base space
For the same reasons as above, the toric base must be complete. Similar to toric varieties as bases, we can use the optional argument completeness_check = false
to switch off the expensive completeness check. The following examples demonstrate this:
global_tate_model
— Methodglobal_tate_model(base::ToricCoveredScheme; completeness_check::Bool = true)
This method constructs a global Tate model over a given toric scheme base 3-fold. The Tate sections $a_i$ are taken with (pseudo) random coefficients.
Examples
julia> t = global_tate_model(sample_toric_scheme(); completeness_check = false)
Global Tate model over a concrete base
global_tate_model
— Methodglobal_tate_model(ais::Vector{T}, base::ToricCoveredScheme; completeness_check::Bool = true) where {T<:MPolyRingElem}
This method operates analogously to global_tate_model(base::ToricCoveredScheme)
. The only difference is that the Tate sections $a_i$ can be specified with non-generic values.
Examples
julia> base = sample_toric_scheme()
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[0, 1, 0], [0, 1, -1//2], [1, -1, -1], [0, 1, -1], [0, 0, 1], [0, 0, -1], [0, -1, 2], [0, -1, 1], [0, -1, 0], [0, -1, -1], [-1, 4, 0], [-1, 5, -1], [-1, 4, -1], [-1, 3, 1], [-1, 3, 0], [-1, 3, -1], [-1, 2, 2], [-1, 2, 1], [-1, 2, 0], [-1, 2, -1], [-1, 1, 3], [-1, 1, 2], [-1, 1, 1], [-1, 1, 0], [-1, 1, -1], [-1, 0, 4], [-1, 0, 3], [-1, 0, 2], [-1, 0, 1], [-1, 0, 0], [-1, 0, -1], [-1, -1, 5], [-1, -1, 4], [-1, -1, 3], [-1, -1, 2], [-1, -1, 1], [-1, -1, 0], [-1, -1, -1]]
julia> a1 = sum([rand(Int) * b for b in basis_of_global_sections(anticanonical_bundle(underlying_toric_variety(base)))]);
julia> a2 = sum([rand(Int) * b for b in basis_of_global_sections(anticanonical_bundle(underlying_toric_variety(base))^2)]);
julia> a3 = sum([rand(Int) * b for b in basis_of_global_sections(anticanonical_bundle(underlying_toric_variety(base))^3)]);
julia> a4 = sum([rand(Int) * b for b in basis_of_global_sections(anticanonical_bundle(underlying_toric_variety(base))^4)]);
julia> a6 = sum([rand(Int) * b for b in basis_of_global_sections(anticanonical_bundle(underlying_toric_variety(base))^6)]);
julia> t = global_tate_model([a1, a2, a3, a4, a6], base; completeness_check = false)
Global Tate model over a concrete base
A (covered) scheme as base space
This functionality does not yet exist.
Base space not specified
This method constructs a global Tate model over a base space, where this base space is not (fully) specified. Consequently, we simply assume that a base space exists such that the Tate sections $a_i$ as introduced above do exist.
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. For example, we could consider the 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$,
In this case, it is useful to consider the polynomial 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 an auxiliary base space. Indeed, for our computer implementation the polynomial ring with these indeterminates serve as the coordinate ring of an auxiliary toric base space. Despite this auxiliary base space being toric, the predictions from such an analysis are not limited to the world of toric varieties.
For constructions along these lines, we support the following constructor:
global_tate_model
— Methodglobal_tate_model(ais::Vector{T}, auxiliary_base_ring::MPolyRing, d::Int) where {T<:MPolyRingElem}
This method constructs a global Tate model over a base space that is not fully specified. The following example exemplifies this approach.
Examples
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)
Global Tate model over a not fully specified base
Standard constructions
We provide convenient constructions of global Tate models over famous base spaces. Currently, we support the following:
global_tate_model_over_projective_space
— Methodglobal_tate_model_over_projective_space(d::Int)
This method constructs a global Tate model over the projective space.
Examples
julia> global_tate_model_over_projective_space(3)
Global Tate model over a concrete base
global_tate_model_over_hirzebruch_surface
— Methodglobal_tate_model_over_hirzebruch_surface(r::Int)
This method constructs a global Tate model over a Hirzebruch surface.
Examples
julia> global_tate_model_over_hirzebruch_surface(1)
Global Tate model over a concrete base
global_tate_model_over_del_pezzo_surface
— Methodglobal_tate_model_over_del_pezzo_surface(b::Int)
This method constructs a global Tate model over a del-Pezzo surface.
Examples
julia> global_tate_model_over_del_pezzo_surface(3)
Global Tate model over a concrete base
Literature constructions
Certain Tate models have been studied in the physics literature over and over again. Thereby, these constructions became famous and some were given special names. We aim to provide support for such standard constructions. An example of such a model is the following:
su5_tate_model_over_arbitrary_3d_base
— Methodsu5_tate_model_over_arbitrary_3d_base()
Return the SU(5) Tate model over an arbitrary 3-dimensional base space. For more details see e.g. Timo Weigand (2018) and references therein.
julia> tm = su5_tate_model_over_arbitrary_3d_base()
Global Tate model over a not fully specified base
julia> v = underlying_toric_variety(ambient_space(tm))
Normal toric variety
julia> a10,a21,a32,a43,a65,w,x,y,z = gens(cox_ring(v));
julia> I = ideal([x,y,w]);
julia> v2 = blow_up(v,I)
Normal toric variety
julia> cox_ring(v2)
Multivariate polynomial ring in 10 variables over QQ graded by
a10 -> [0 0]
a21 -> [0 0]
a32 -> [0 0]
a43 -> [0 0]
a65 -> [0 0]
w -> [1 0]
x -> [1 2]
y -> [1 3]
z -> [0 1]
e -> [-1 0]
More generally, we support literature constructions.
literature_tate_model
— Methodliterature_tate_model(; doi::String="", arxiv_id::String="", version="", equation::String="")
Many Tate models have been created in the F-theory literature. A significant number of them have even been given specific names, for instance the "U(1)-restricted SU(5)-GUT model". This method has access to a database, from which it can look up such literature models. Currently, you can provide any combination of the following three optional arguments to the method literature_tate_model
:
doi
: A string representing the DOI of the publication that
introduced the model in question.
equation
: A string representing the number of the equation that introduced
the model in question. For papers, that were published on the arxiv, we can instead of the doi
also provide the following:
arxiv_id
: For papers published on the arxiv, one can also provide a string
that represents the arxiv identifier of the paper that introduced the model in question.
version
: A string representing the version of the arxiv upload.
The method literature_tate_model
attempts to find a model in our database for which the provided data matches the information in our record. If no such model could be found, or multiple models exist with information matching the provided information, then the following error is raised: "We could not uniquely identify the model".
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> v = ambient_space(t)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[1, 0, 0, 0, 0, -2, -3], [0, 0, 0, 1, 0, -2, -3], [0, 0, 0, 0, 1, -2, -3], [0, 1, 0, 0, 0, -2, -3], [0, 0, 1, 0, 0, -2, -3], [0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, -1, -3//2]]
julia> a1,a21,a32,a43,w,x,y,z = gens(cox_ring(v));
julia> I = ideal([x,y,w]);
julia> v2 = blow_up(underlying_toric_variety(v),I)
Normal toric variety
julia> cox_ring(v2)
Multivariate polynomial ring in 9 variables over QQ graded by
a1 -> [0 0]
a21 -> [0 0]
a32 -> [0 0]
a43 -> [0 0]
w -> [1 0]
x -> [1 2]
y -> [1 3]
z -> [0 1]
e -> [-1 0]
Attributes
Basic attributes
For all global Tate models – irrespective over whether the base is toric or not – we support the following attributes:
tate_section_a1
— Methodtate_section_a1(t::GlobalTateModel)
Return the Tate section $a_1$.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> tate_section_a1(t)
a1
tate_section_a2
— Methodtate_section_a2(t::GlobalTateModel)
Return the Tate section $a_2$.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> tate_section_a2(t)
a21*w
tate_section_a3
— Methodtate_section_a3(t::GlobalTateModel)
Return the Tate section $a_3$.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> tate_section_a3(t)
a32*w^2
tate_section_a4
— Methodtate_section_a4(t::GlobalTateModel)
Return the Tate section $a_4$.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> tate_section_a4(t)
a43*w^3
tate_section_a6
— Methodtate_section_a6(t::GlobalTateModel)
Return the Tate section $a_6$.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> tate_section_a6(t)
0
tate_polynomial
— Methodtate_polynomial(t::GlobalTateModel)
Return the Tate polynomial of the global Tate model.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> tate_polynomial(t)
-a1*x*y*z + a21*w*x^2*z^2 - a32*w^2*y*z^3 + a43*w^3*x*z^4 + x^3 - y^2
In case the global Tate model is constructed over a not fully specified base, recall that we construct an auxiliary (toric) base space as well as an auxiliary (toric) ambient space. The (auxiliary) base and ambient space can be accessed with the following functions:
base_space
— Methodbase_space(t::GlobalTateModel)
Return the base space of the global Tate model.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> base_space(t)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[1, 0, 0, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0]]
ambient_space
— Methodambient_space(t::GlobalTateModel)
Return the ambient space of the global Tate model.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> ambient_space(t)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[1, 0, 0, 0, 0, -2, -3], [0, 0, 0, 1, 0, -2, -3], [0, 0, 0, 0, 1, -2, -3], [0, 1, 0, 0, 0, -2, -3], [0, 0, 1, 0, 0, -2, -3], [0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, -1, -3//2]]
fiber_ambient_space
— Methodfiber_ambient_space(t::GlobalTateModel)
Return the fiber ambient space of the global Tate model.
julia> t = su5_tate_model_over_arbitrary_3d_base()
Global Tate model over a not fully specified base
julia> fiber_ambient_space(t)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[-1, 1//3], [1, -1//2], [0, 1]]
The following method allows to tell if the base/ambient space is auxiliary or not:
base_fully_specified
— Methodbase_fully_specified(t::GlobalTateModel)
Return true
is the Tate model has a concrete base space and false
otherwise.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> base_fully_specified(t)
false
The user can decide to get an information whenever an auxiliary base space, auxiliary ambient space or auxiliary hypersurface have been computed. To this end, one invokes set_verbosity_level(:GlobalTateModel, 1)
. More background information is available here.
Advanced attributes
The following attributes are currently only supported in a toric setting:
calabi_yau_hypersurface
— Methodcalabi_yau_hypersurface(t::GlobalTateModel)
Return the Calabi-Yau hypersurface in the toric ambient space which defines the global Tate model.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> calabi_yau_hypersurface(t)
Closed subvariety of a normal toric variety
global_weierstrass_model
— Methodglobal_weierstrass_model(t::GlobalTateModel)
Return the global Weierstrass model which is equivalent to the given Tate model.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> global_weierstrass_model(t)
Global Weierstrass model over a not fully specified base
Note that for applications in F-theory, singular elliptic fibrations are key (cf. Timo Weigand (2018) and references therein). Consequently the discriminant locus as well as the singular loci of the fibration in question are of ample importance:
discriminant
— Methoddiscriminant(t::GlobalTateModel)
Return the discriminant of the global Tate model.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> discriminant(t);
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 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> 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)
Global Tate model over a not fully specified base
julia> length(singular_loci(t))
2
julia> singular_loci(t)[2]
(ideal(w), (1, 2, 3), "III")
Attributes for literature models
For literature models, we provide the following attributes:
doi
— Methoddoi(t::GlobalTateModel)
Return the doi
of the publication which introduced the global Tate model in question. If no doi
is known, an error is raised.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> doi(t)
"10.1016/j.nuclphysb.2011.12.013"
arxiv_id
— Methodarxiv_id(t::GlobalTateModel)
Return the arxiv_id
of the publication which introduced the global Tate model in question. If no arxiv_id
is known, an error is raised.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> arxiv_id(t)
"1109.3454"
version
— Methodversion(t::GlobalTateModel)
Return the version
of the arxiv publication which introduced the global Tate model in question. If no version
is known, an error is raised.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> version(t)
"2"
equation_number
— Methodequation_number(t::GlobalTateModel)
Return the equation_number
in which the model was introduced in the publication on our record (either specified by doi
or, if uploaded to the arxiv, the arxiv_id
and version
). If no equation_number
is known, an error is raised.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> equation_number(t)
"3.1"
description
— Methoddescription(t::GlobalTateModel)
Return the description
of the model in question. If no description
is known, an error is raised.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> description(t)
"SU(5)xU(1) restricted Tate model"
link
— Methodlink(t::GlobalTateModel)
Return the link
(formatted as string) to the online version of the paper which introduced the model in question. If no link is known, an error is raised.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> link(t)
"https://arxiv.org/abs/1109.3454v2"
Certainly, one can add this information for a model that does not have it:
set_description
— Methodset_description(t::GlobalTateModel, description::String)
Set a description for a global Tate model.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> set_description(t, "An SU(5)xU(1) GUT-model")
julia> t
Global Tate model over a not fully specified base -- An SU(5)xU(1) GUT-model based on arXiv paper 1109.3454 Eq. (3.1)
Note however, that these changes will (currently) not be stored in our data base. One can also check if a model has a particular set of information. This is achieved with the following methods:
has_doi(t::GlobalTateModel)
,has_arxiv_id(t::GlobalTateModel)
,has_version(t::GlobalTateModel)
,has_equation_number(t::GlobalTateModel)
,has_description(t::GlobalTateModel)
,has_link(t::GlobalTateModel)
.
Methods
Fiber study
In F-theory, it is standard to not work with the singular space directly. Rather, one resolves its singularities in order to obtain a smooth space instead. Subsequently, one performs computations on this smooth space.
In order to perform such a resolution, one wishes to analyze the fibration in detail. The following method aims at giving a first window into this analysis by working out the fiber components and their intersection pattern over a particular locus of the base.
analyze_fibers
— Methodanalyze_fibers(model::GlobalTateModel, centers::Vector{<:Vector{<:Integer}})
Determine the fiber of a (singular) global Tate model over a particular base locus. ```
Resolution(s) of a singular model
A central task in F-theory is to resolve a singular global Tate model. For literature models, we have stored resolutions in our data base. Upon construction of a literature model, we load these known resolutions. The user can list all the resolutions in our database as follows:
resolutions
— Methodresolutions(t::GlobalTateModel)
Return the list of all known resolutions for the global Tate model.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> length(resolutions(t))
1
In addition, some user might want to add a resolution. This can be achieved with the following method:
add_resolution
— Methodadd_resolution(t::GlobalTateModel, centers::Vector{Vector{String}}, exceptionals::Vector{String})
Add a known resolution for a global Tate model.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> add_resolution(t, [["x", "y"], ["y", "s", "w"], ["s", "e4"], ["s", "e3"], ["s", "e1"]], ["s", "w", "e3", "e1", "e2"])
julia> length(resolutions(t))
2
Provided that a resolution for a model is known, we can (attempt to) resolve the model.
resolve
— Methodresolve(t::GlobalTateModel, index::Int)
Resolve a global Tate model with the index-th resolution that is known.
Careful: Currently, this assumes that all blowups are toric blowups. We hope to remove this requirement in the near future.
julia> t = literature_tate_model(arxiv_id = "1109.3454", equation = "3.1")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
julia> v = resolve(t, 1)
Scheme of a toric variety with fan spanned by RayVector{QQFieldElem}[[1, 0, 0, 0, 0, -2, -3], [0, 0, 0, 1, 0, -2, -3], [0, 0, 0, 0, 1, -2, -3], [0, 1, 0, 0, 0, -2, -3], [0, 0, 1, 0, 0, -2, -3], [0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, -1, -3//2], [0, 0, 1, 0, 0, -1, -2], [0, 0, 1, 0, 0, -1, -1], [0, 0, 1, 0, 0, 0, -1], [0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1]]
julia> cox_ring(v)
Multivariate polynomial ring in 13 variables over QQ graded by
a1 -> [0 0 0 0 0 0]
a21 -> [0 0 0 0 0 0]
a32 -> [0 0 0 0 0 0]
a43 -> [0 0 0 0 0 0]
w -> [1 0 0 0 0 0]
x -> [0 1 0 0 0 0]
y -> [0 0 1 0 0 0]
z -> [0 0 0 1 0 0]
e1 -> [0 0 0 0 1 0]
e4 -> [0 0 0 0 0 1]
e2 -> [-1 -1 1 -1 -1 0]
e3 -> [0 1 -1 1 0 -1]
s -> [2 -1 0 2 1 1]