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_modelMethod
    global_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
    source
    FTheoryTools.global_tate_model_over_projective_spaceMethod
    global_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
    source
    FTheoryTools.global_tate_modelMethod
    global_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
    source

    ... 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_modelMethod
    global_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
    source

    Attributes

    For all Tate models, we support the following attributes:

    FTheoryTools.tate_section_a1Method
    tate_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);
    source
    FTheoryTools.tate_section_a2Method
    tate_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);
    source
    FTheoryTools.tate_section_a3Method
    tate_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);
    source
    FTheoryTools.tate_section_a4Method
    tate_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);
    source
    FTheoryTools.tate_section_a6Method
    tate_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);
    source
    FTheoryTools.tate_polynomialMethod
    tate_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);
    source
    FTheoryTools.cy_hypersurfaceMethod
    cy_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
    source
    FTheoryTools.global_weierstrass_modelMethod
    global_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
    source
    AbstractAlgebra.discriminantMethod
    discriminant(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);
    source

    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_spaceMethod
    toric_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
    source
    FTheoryTools.toric_ambient_spaceMethod
    toric_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
    source

    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_specifiedMethod
    base_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
    source

    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_lociMethod
    singular_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")
    source