Skip to content

Commit

Permalink
[FTheoryTools] GlobalWeierstrassModel -> WeierstrassModel
Browse files Browse the repository at this point in the history
  • Loading branch information
HereAround committed May 20, 2023
1 parent 376f264 commit d308059
Show file tree
Hide file tree
Showing 11 changed files with 149 additions and 149 deletions.
2 changes: 1 addition & 1 deletion experimental/FTheoryTools/docs/src/tate.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ More background information is available
The following attributes are currently only supported in a toric setting:
```@docs
calabi_yau_hypersurface(t::GlobalTateModel)
global_weierstrass_model(t::GlobalTateModel)
weierstrass_model(t::GlobalTateModel)
```
Note that for applications in F-theory, *singular* elliptic fibrations are key
(cf. [Wei18](@cite) and references therein). Consequently the discriminant
Expand Down
56 changes: 28 additions & 28 deletions experimental/FTheoryTools/docs/src/weierstrass.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
CurrentModule = Oscar
```

# Global Weierstrass models
# Weierstrass models

A global Weierstrass model describes a particular form of an elliptic fibration.
A Weierstrass model describes a particular form of an elliptic fibration.
We focus on an elliptic fibration over a complete base ``B``. Consider
the weighted projective space ``\mathbb{P}^{2,3,1}`` with coordinates
``x, y, z``. In addition, consider
Expand All @@ -14,7 +14,7 @@ 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 Weierstrass model is the hypersurface defined
In this 5-fold ambient space, a Weierstrass model is the hypersurface defined
by the vanishing of the Weierstrass polynomial ``P_W = x^3 - y^2 + f x z^4 + g z^6``.

Crucially, for non-trivial F-theory settings, the elliptic fibration in question must
Expand Down Expand Up @@ -48,11 +48,11 @@ This can be read-off from the Weierstrass table, which we have reproduced from

## Constructors

We aim to provide support for global Weierstrass models over the following bases:
We aim to provide support for Weierstrass models over the following bases:
* a toric variety,
* a toric scheme,
* a (covered) scheme.
Often, one also wishes to obtain information about a global Weierstrass model without
Often, one also wishes to obtain information about a Weierstrass model without
explicitly specifying the base space. Also for this application, we provide support.
Finally, we provide support for some standard constructions.

Expand Down Expand Up @@ -86,8 +86,8 @@ However, completeness is an expensive check. Therefore, we provide an optional a
`completeness_check = false` as last argument to the constructor. The following examples
demonstrate this:
```@docs
global_weierstrass_model(base::AbstractNormalToricVariety; completeness_check::Bool = true)
global_weierstrass_model(f::MPolyRingElem, g::MPolyRingElem, base::AbstractNormalToricVariety; completeness_check::Bool = true)
weierstrass_model(base::AbstractNormalToricVariety; completeness_check::Bool = true)
weierstrass_model(f::MPolyRingElem, g::MPolyRingElem, base::AbstractNormalToricVariety; completeness_check::Bool = true)
```

### A toric scheme as base space
Expand All @@ -96,8 +96,8 @@ For the same reasons as above, the toric base must be complete. Similar to toric
bases, we can use the optional argument `completeness_check = false` to switch off the
expensive completeness check. The following examples demonstrate this:
```@docs
global_weierstrass_model(base::ToricCoveredScheme; completeness_check::Bool = true)
global_weierstrass_model(f::MPolyRingElem, g::MPolyRingElem, base::ToricCoveredScheme; completeness_check::Bool = true)
weierstrass_model(base::ToricCoveredScheme; completeness_check::Bool = true)
weierstrass_model(f::MPolyRingElem, g::MPolyRingElem, base::ToricCoveredScheme; completeness_check::Bool = true)
```

### A (covered) scheme as base space
Expand All @@ -106,7 +106,7 @@ This functionality does not yet exist.

### Base space not specified

A global Weierstrass model can also be constructed over a base space that
A Weierstrass model can also be constructed over a base space that
is not fully specified. Rather, it assumes that a base space exists such that
the Weierstrass sections ``f`` and ``g`` are well-defined, so that the
Weierstrass model in question is well-defined.
Expand All @@ -125,17 +125,17 @@ the predictions from such an analysis are not limited to the world of toric vari

For constructions along these lines, we support the following constructor:
```@docs
global_weierstrass_model(weierstrass_f::MPolyRingElem, weierstrass_g::MPolyRingElem, auxiliary_base_ring::MPolyRing, d::Int)
weierstrass_model(weierstrass_f::MPolyRingElem, weierstrass_g::MPolyRingElem, auxiliary_base_ring::MPolyRing, d::Int)
```

### Standard constructions

We provide convenient constructions of global Weierstrass models
We provide convenient constructions of Weierstrass models
over famous base spaces. Currently, we support the following:
```@docs
global_weierstrass_model_over_projective_space(d::Int)
global_weierstrass_model_over_hirzebruch_surface(r::Int)
global_weierstrass_model_over_del_pezzo_surface(b::Int)
weierstrass_model_over_projective_space(d::Int)
weierstrass_model_over_hirzebruch_surface(r::Int)
weierstrass_model_over_del_pezzo_surface(b::Int)
```


Expand All @@ -153,45 +153,45 @@ su5_weierstrass_model_over_arbitrary_3d_base()

### Basic attributes

For all global Weierstrass models -- irrespective over whether the base is toric or not -- we support
For all Weierstrass models -- irrespective over whether the base is toric or not -- we support
the following attributes:
```@docs
weierstrass_section_f(w::GlobalWeierstrassModel)
weierstrass_section_g(w::GlobalWeierstrassModel)
weierstrass_polynomial(w::GlobalWeierstrassModel)
weierstrass_section_f(w::WeierstrassModel)
weierstrass_section_g(w::WeierstrassModel)
weierstrass_polynomial(w::WeierstrassModel)
```
In case the global Weierstrass model is constructed over a not fully specified base,
In case the Weierstrass 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:
```@docs
base_space(w::GlobalWeierstrassModel)
ambient_space(w::GlobalWeierstrassModel)
fiber_ambient_space(w::GlobalWeierstrassModel)
base_space(w::WeierstrassModel)
ambient_space(w::WeierstrassModel)
fiber_ambient_space(w::WeierstrassModel)
```
The following method allows to tell if the base/ambient space is auxiliary or not:
```@docs
base_fully_specified(w::GlobalWeierstrassModel)
base_fully_specified(w::WeierstrassModel)
```
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(:GlobalWeierstrassModel, 1)`.
To this end, one invokes `set_verbosity_level(:WeierstrassModel, 1)`.
More background information is available
[here](http://www.thofma.com/Hecke.jl/dev/features/macros/).

### Advanced attributes

The following attributes are currently only supported in a toric setting:
```@docs
calabi_yau_hypersurface(w::GlobalWeierstrassModel)
calabi_yau_hypersurface(w::WeierstrassModel)
```
Note that for applications in F-theory, *singular* elliptic fibrations are key
(cf. [Wei18](@cite) and references therein). Consequently the discriminant
locus as well as the singular loci of the fibration in question are of ample
importance:
```@docs
discriminant(w::GlobalWeierstrassModel)
singular_loci(w::GlobalWeierstrassModel)
discriminant(w::WeierstrassModel)
singular_loci(w::WeierstrassModel)
```

## Methods
Expand Down
18 changes: 9 additions & 9 deletions experimental/FTheoryTools/src/TateModels/attributes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -207,20 +207,20 @@ end
#####################################################

@doc raw"""
global_weierstrass_model(t::GlobalTateModel)
weierstrass_model(t::GlobalTateModel)
Return the global Weierstrass model which is equivalent to the given Tate model.
Return the Weierstrass model which is equivalent to the given Tate model.
```jldoctest
julia> t = literature_tate_model(arxiv_id = "1109.3454", equ_nr = "3.5")
Global Tate model over a not fully specified base -- SU(5)xU(1) restricted Tate model based on arxiv paper 1109.3454 (equ. 3.5)
julia> global_weierstrass_model(t)
Global Weierstrass model over a not fully specified base
julia> weierstrass_model(t)
Weierstrass model over a not fully specified base
```
"""
@attr GlobalWeierstrassModel function global_weierstrass_model(t::GlobalTateModel)
@req typeof(base_space(t)) <: ToricCoveredScheme "Conversion of global Tate model into global Weierstrass model is currently only supported for toric varieties/schemes as base space"
@attr WeierstrassModel function weierstrass_model(t::GlobalTateModel)
@req typeof(base_space(t)) <: ToricCoveredScheme "Conversion of global Tate model into Weierstrass model is currently only supported for toric varieties/schemes as base space"
b2 = 4 * tate_section_a2(t) + tate_section_a1(t)^2
b4 = 2 * tate_section_a4(t) + tate_section_a1(t) * tate_section_a3(t)
b6 = 4 * tate_section_a6(t) + tate_section_a3(t)^2
Expand All @@ -230,7 +230,7 @@ Global Weierstrass model over a not fully specified base
x, y, z = gens(S)[ngens(S)-2:ngens(S)]
ring_map = hom(parent(f), S, gens(S)[1:ngens(parent(f))])
pw = x^3 - y^2 + ring_map(f)*x*z^4 + ring_map(g)*z^6
model = GlobalWeierstrassModel(f, g, pw, base_space(t), ambient_space(t))
model = WeierstrassModel(f, g, pw, base_space(t), ambient_space(t))
set_attribute!(model, :base_fully_specified, base_fully_specified(t))
return model
end
Expand All @@ -254,7 +254,7 @@ julia> discriminant(t);
"""
@attr MPolyRingElem function discriminant(t::GlobalTateModel)
@req typeof(base_space(t)) <: ToricCoveredScheme "Discriminant of global Tate model is currently only supported for toric varieties/schemes as base space"
return discriminant(global_weierstrass_model(t))
return discriminant(weierstrass_model(t))
end


Expand Down Expand Up @@ -319,7 +319,7 @@ julia> singular_loci(t)[2]
"""
@attr Vector{<:Tuple{<:MPolyIdeal{<:MPolyRingElem}, Tuple{Int64, Int64, Int64}, String}} function singular_loci(t::GlobalTateModel)
@req typeof(base_space(t)) <: ToricCoveredScheme "Singular loci of global Tate model currently only supported for toric varieties/schemes as base space"
return singular_loci(global_weierstrass_model(t))
return singular_loci(weierstrass_model(t))
end


Expand Down
Loading

0 comments on commit d308059

Please sign in to comment.