Literature constructions

Certain 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_baseMethod
su5_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. [Wei18] and references therein.

julia> tm = su5_tate_model_over_arbitrary_3d_base()
Assuming that the first row of the given grading is the grading under Kbar

Global Tate model over a not fully specified base

julia> v = ambient_space(tm)
A family of spaces of dimension d = 5
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

More generally, we support literature constructions.

literature_modelMethod
literature_model(; doi::String="", arxiv_id::String="", version::String="", equation::String="", model_parameters::Dict{String,<:Any} = Dict{String,Any}(), base_space::FTheorySpace = affine_space(NormalToricVariety, 0), model_sections::Dict{String, <:Any} = Dict{String,Any}(), defining_classes::Dict{String, <:Any} = Dict{String,Any}(), completeness_check::Bool = true)

Many 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 optional arguments to the method literature_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 posted on the arXiv, we can instead of the doi also provide the following:

  • arxiv_id: 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_model attempts to find a model in our database for which the provided data matches the information in our record. If no such model can be found, or multiple models exist with information matching the provided information, then an error is raised.

Some literature models require additional parameters to specified to single out a model from a family of models. Such models can be provided using the optional argument model_parameters, which should be a dictionary such as Dict("k" => 5).

julia> t = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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)
A family of spaces of dimension d = 5

julia> coordinate_ring(v)
Multivariate polynomial ring in 8 variables w, a1, a21, a32, ..., z
  over rational field

It is also possible to construct a literature model over a particular base. Currently, this feature is only supported for toric base spaces.

julia> B3 = projective_space(NormalToricVariety, 3)
Normal toric variety

julia> w = torusinvariant_prime_divisors(B3)[1]
Torus-invariant, prime divisor on a normal toric variety

julia> t2 = literature_model(arxiv_id = "1109.3454", equation = "3.1", base_space = B3, defining_classes = Dict("w" => w), completeness_check = false)
Construction over concrete base may lead to singularity enhancement. Consider computing singular_loci. However, this may take time!

Global Tate model over a concrete base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)

julia> length(singular_loci(t2))
2

Of course, this is also possible for Weierstrass models.

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

julia> b = torusinvariant_prime_divisors(B2)[1]
Torus-invariant, prime divisor on a normal toric variety

julia> w = literature_model(arxiv_id = "1208.2695", equation = "B.19", base_space = B2, defining_classes = Dict("b" => b), completeness_check = false)
Construction over concrete base may lead to singularity enhancement. Consider computing singular_loci. However, this may take time!

Weierstrass model over a concrete base -- U(1) Weierstrass model based on arXiv paper 1208.2695 Eq. (B.19)

julia> length(singular_loci(w))
1

For convenience, we also support a simplified constructor. Instead of the meta data of the article, this constructor accepts an integer, which specifies the position of this model in our database.

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

julia> b = torusinvariant_prime_divisors(B2)[1]
Torus-invariant, prime divisor on a normal toric variety

julia> w = literature_model(3, base_space = B2, defining_classes = Dict("b" => b), completeness_check = false)
Construction over concrete base may lead to singularity enhancement. Consider computing singular_loci. However, this may take time!

Weierstrass model over a concrete base -- U(1) Weierstrass model based on arXiv paper 1208.2695 Eq. (B.19)

julia> length(singular_loci(w))
1

Similarly, also hypersurface models are supported:

julia> h = literature_model(arxiv_id = "1208.2695", equation = "B.5")
Assuming that the first row of the given grading is the grading under Kbar

Hypersurface model over a not fully specified base

julia> explicit_model_sections(h)
Dict{String, MPolyRingElem} with 5 entries:
  "c2" => c2
  "c1" => c1
  "c3" => c3
  "b"  => b
  "c0" => c0

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

julia> b = torusinvariant_prime_divisors(B2)[1]
Torus-invariant, prime divisor on a normal toric variety

julia> h2 = literature_model(arxiv_id = "1208.2695", equation = "B.5", base_space = B2, defining_classes = Dict("b" => b))
Construction over concrete base may lead to singularity enhancement. Consider computing singular_loci. However, this may take time!

Hypersurface model over a concrete base

julia> hypersurface_equation_parametrization(h2)
b*w*v^2 - c0*u^4 - c1*u^3*v - c2*u^2*v^2 - c3*u*v^3 + w^2

A yet more special instance of literature model are the F-theory QSMs. Those consist of 708 families of geometries, each of which is obtained from triangulations of polytopes in the 3-dimensional Kreuzer-Skarke list. In particular, for each of these 708 families, a lot of information is known. Still, those geometries are also somewhat involved. Let us demonstrate this on the F-theory QSM based on the 4th polytope in the 3-dimensional Kreuzer-Skarke list. We can create and study this model as follows (TODO: currently under development):

julia> qsm_model = literature_model(arxiv_id = "1903.00009", model_parameters = Dict("k" => 4));

julia> model = qsm_model.hs_model
Hypersurface model over a concrete base

julia> cox_ring(base_space(model))
Multivariate polynomial ring in 29 variables over QQ graded by
  x1 -> [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x2 -> [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x3 -> [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x4 -> [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x5 -> [0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x6 -> [0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x7 -> [0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x8 -> [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x9 -> [0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x10 -> [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x11 -> [0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x12 -> [0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x13 -> [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0]
  x14 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0]
  x15 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0]
  x16 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0]
  x17 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0]
  x18 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0]
  x19 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]
  x20 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0]
  x21 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0]
  x22 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]
  x23 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0]
  x24 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]
  x25 -> [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0]
  x26 -> [1 4 0 1 2 3 1 2 3 4 0 1 1 1 1 1 1 1 1 4 0 2 3 4 4 5]
  x27 -> [3 2 2 0 -1 -1 1 0 0 1 1 2 0 1 -1 0 -2 -1 -3 -2 -2 1 1 -1 0 0]
  x28 -> [-2 -4 -1 -1 -1 -2 -1 -2 -3 -4 -1 -2 -2 -2 -1 -1 0 0 1 -2 1 -2 -3 -3 -3 -4]
  x29 -> [0 -1 0 -1 -1 -1 0 -1 -1 -1 0 0 0 0 0 0 0 0 0 -1 0 -1 -1 -1 -1 -1]

julia> qsm_model.Kbar3
6

julia> qsm_model.triang_quick
true

julia> qsm_model.estimated_number_of_triangulations
212533333333

julia> qsm_model.dual_graph
Undirected graph with 21 nodes and the following edges:
(5, 1)(6, 5)(7, 6)(8, 7)(9, 4)(9, 8)(10, 1)(11, 4)(12, 3)(12, 10)(13, 3)(13, 11)(14, 1)(15, 4)(16, 3)(17, 3)(18, 2)(18, 14)(19, 2)(19, 15)(20, 2)(20, 16)(21, 2)(21, 17)

julia> qsm_model.components_of_simplified_dual_graph
4-element Vector{String}:
 "C0"
 "C1"
 "C2"
 "C3"

julia> qsm_model.simplified_dual_graph
Undirected graph with 4 nodes and the following edges:
(2, 1)(3, 1)(3, 2)(4, 1)(4, 2)(4, 3)
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

Attributes

For literature models, we provide the following attributes referencing meta data:

arxiv_idMethod
arxiv_id(m::AbstractFTheoryModel)

Return the arxiv_id of the preprint that introduced the given model. If no arxiv_id is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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(m)
"1109.3454"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
arxiv_doiMethod
arxiv_doi(m::AbstractFTheoryModel)

Return the arxiv_doi of the preprint that introduced the given model. If no arxiv_doi is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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_doi(m)
"10.48550/arXiv.1109.3454"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
arxiv_linkMethod
arxiv_link(m::AbstractFTheoryModel)

Return the arxiv_link (formatted as string) to the arXiv version of the paper that introduced the given model. If no arxiv_link is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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_link(m)
"https://arxiv.org/abs/1109.3454v2"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
arxiv_model_equation_numberMethod
arxiv_model_equation_number(m::AbstractFTheoryModel)

Return the arxiv_model_equation_number in which the given model was introduced in the arXiv preprint in our record. If no arxiv_model_equation_number is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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_model_equation_number(m)
"3.1"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
arxiv_model_pageMethod
arxiv_model_page(m::AbstractFTheoryModel)

Return the arxiv_model_page on which the given model was introduced in the arXiv preprint in our record. If no arxiv_model_page is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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_model_page(m)
"10"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
arxiv_model_sectionMethod
arxiv_model_section(m::AbstractFTheoryModel)

Return the arxiv_model_section in which the given model was introduced in the arXiv preprint in our record. If no arxiv_model_section is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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_model_section(m)
"3"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
arxiv_versionMethod
arxiv_version(m::AbstractFTheoryModel)

Return the arxiv_version of the arXiv preprint that introduced the given model. If no arxiv_version is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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_version(m)
"2"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
associated_literature_modelsMethod
associated_literature_models(m::AbstractFTheoryModel)

Return a list of the unique identifiers any associated_literature_models of the given model. These are either other presentations (Weierstrass, Tate, ...) of the given model, or other version of the same model from a different paper in the literature. If no associated_literature_models are known, an error is raised.

julia> m = literature_model(arxiv_id = "1507.05954", equation = "A.1")
Assuming that the first row of the given grading is the grading under Kbar

Weierstrass model over a not fully specified base -- U(1)xU(1) Weierstrass model based on arXiv paper 1507.05954 Eq. (A.1)

julia> associated_literature_models(m)
1-element Vector{String}:
 "1507_05954-1"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
generating_sectionsMethod
generating_sections(m::AbstractFTheoryModel)

Return a list of the known Mordell–Weil generating sections of the given model. If no generating sections are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> generating_sections(m)
1-element Vector{Vector{QQMPolyRingElem}}:
 [0, 0, 1]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
journal_doiMethod
journal_doi(m::AbstractFTheoryModel)

Return the journal_doi of the publication that introduced the given model. If no journal_doi is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> journal_doi(m)
"10.1016/j.nuclphysb.2011.12.013"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
journal_linkMethod
journal_link(m::AbstractFTheoryModel)

Return the journal_link (formatted as string) to the published version of the paper that introduced the given model. If no journal_link is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> journal_link(m)
"https://www.sciencedirect.com/science/article/pii/S0550321311007115"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
journal_model_equation_numberMethod
journal_model_equation_number(m::AbstractFTheoryModel)

Return the journal_model_equation_number in which the given model was introduced in the published paper in our record. If no journal_model_equation_number is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> journal_model_equation_number(m)
"3.1"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
journal_model_pageMethod
journal_model_page(m::AbstractFTheoryModel)

Return the journal_model_page on which the given model was introduced in the published paper in our record. If no journal_model_page is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> journal_model_page(m)
"9"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
journal_model_sectionMethod
journal_model_section(m::AbstractFTheoryModel)

Return the journal_model_section in which the given model was introduced in the published paper in our record. If no journal_model_section is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> journal_model_section(m)
"3"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
journal_nameMethod
journal_name(m::AbstractFTheoryModel)

Return the journal_volume of the published paper in which the given model was introduced. If no journal_volume are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> journal_volume(m)
"858"
source
journal_pagesMethod
journal_pages(m::AbstractFTheoryModel)

Return the journal_pages of the published paper in which the given model was introduced. If no journal_pages are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> journal_pages(m)
"1–47"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
journal_report_numbersMethod
journal_report_numbers(m::AbstractFTheoryModel)

Return the journal_report_numbers of the published paper in which the given model was introduced. If no journal_report_numbers is known, an error is raised.

julia> m = literature_model(arxiv_id = "1507.05954", equation = "A.1")
Assuming that the first row of the given grading is the grading under Kbar

Weierstrass model over a not fully specified base -- U(1)xU(1) Weierstrass model based on arXiv paper 1507.05954 Eq. (A.1)

julia> journal_report_numbers(m)
3-element Vector{String}:
 "UPR-1274-T"
 "CERN-PH-TH-2015-157"
 "MIT-CTP-4678"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
journal_volumeMethod
journal_volume(m::AbstractFTheoryModel)

Return the journal_volume of the published paper in which the given model was introduced. If no journal_volume are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> journal_volume(m)
"858"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
journal_yearMethod
journal_year(m::AbstractFTheoryModel)

Return the journal_year of the published paper in which the given model was introduced. If no journal_year is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> journal_year(m)
"2012"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
literature_identifierMethod
literature_identifier(m::AbstractFTheoryModel)

Return the literature_identifier of the given mode, which is a unique string that distinguishes the model from all others in the literature model database. If no literature_identifier is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> literature_identifier(m)
"1109_3454"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
model_parametersMethod
model_parameters(m::AbstractFTheoryModel)

Return the model_parameters of the given model. If no model_parameters are known, an error is raised.

julia> m = literature_model(arxiv_id = "1212.2949", equation = "3.2", model_parameters = Dict("k" => 5))
Assuming that the first row of the given grading is the grading under Kbar

Global Tate model over a not fully specified base -- SU(2k+1) Tate model with parameter values (k = 5) based on arXiv paper 1212.2949 Eq. (3.2)

julia> model_parameters(m)
Dict{String, Int64} with 1 entry:
  "k" => 5
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
paper_authorsMethod
paper_authors(m::AbstractFTheoryModel)

Return the paper_authors of the paper that introduced the given model. If no paper_authors are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> paper_authors(m)
3-element Vector{String}:
 "Sven Krause"
 "Christoph Mayrhofer"
 "Timo Weigand"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
paper_buzzwordsMethod
paper_buzzwords(m::AbstractFTheoryModel)

Return the paper_buzzwords of the paper that introduced the given model. If no paper_buzzwords are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> paper_buzzwords(m)
4-element Vector{String}:
 "GUT model"
 "Tate"
 "U(1)"
 "SU(5)"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
paper_descriptionMethod
paper_description(m::AbstractFTheoryModel)

Return the paper_description of the paper that introduced the given model. If no paper_description is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> paper_description(m)
"SU(5)xU(1) restricted Tate model"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
paper_titleMethod
paper_title(m::AbstractFTheoryModel)

Return the paper_title of the arXiv preprint that introduced the given model. If no paper_title is known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> paper_title(m)
"\$G_4\$ flux, chiral matter and singularity resolution in F-theory compactifications"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
related_literature_modelsMethod
related_literature_models(m::AbstractFTheoryModel)

Return a list of the unique identifiers of any related_literature_models of the given model. These are models that are introduced in the same paper as the given model, but that are distinct from the given model. If no related_literature_models are known, an error is raised.

julia> m = literature_model(arxiv_id = "1212.2949", equation = "3.2", model_parameters = Dict("k" => 5))
Assuming that the first row of the given grading is the grading under Kbar

Global Tate model over a not fully specified base -- SU(2k+1) Tate model with parameter values (k = 5) based on arXiv paper 1212.2949 Eq. (3.2)

julia> related_literature_models(m)
6-element Vector{String}:
 "1212_2949-2"
 "1212_2949-3"
 "1212_2949-4"
 "1212_2949-5"
 "1212_2949-6"
 "1212_2949-7"
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

Such meta data can be modified with setters. For instance, there is a function set_description(m::AbstractFTheoryModel, description::String), which takes the model in question as the first argument and the desired description - provided as string - as the second argument. Such a setter function exists for all of the above. If appropriate, we also offer a method that adds a new value. For instance, we have a function add_paper_buzzword(m::AbstractFTheoryModel, addition::String).

In addition, the following attributes are available to access advanced model information:

resolutionsMethod
resolutions(m::AbstractFTheoryModel)

Return the list of all known resolutions for the given model. If no resolutions are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> resolutions(m)
1-element Vector{Vector{Vector}}:
 [[["x", "y", "w"], ["y", "e1"], ["x", "e4"], ["y", "e2"], ["x", "y"]], ["e1", "e4", "e2", "e3", "s"]]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
resolution_generating_sectionsMethod
resolution_generating_sections(m::AbstractFTheoryModel)

Return a list of lists of known Mordell–Weil generating sections for the given model after each known resolution. Each element of the outer list corresponds to a known resolution (in the same order), and each element of the list associated to a given resolution corresponds to a known generating section (in the same order). If no resolution generating sections are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> resolution_generating_sections(m)
1-element Vector{Vector{Vector{Vector{QQMPolyRingElem}}}}:
 [[[0, 0, 1], [0, 0, 1], [0, 1], [0, 1], [0, 1], [a32, -a43]]]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
resolution_zero_sectionsMethod
resolution_zero_sections(m::AbstractFTheoryModel)

Return a list of known Mordell–Weil zero sections for the given model after each known resolution. Each element of the list corresponds to a known resolution (in the same order). If no resolution zero sections are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> resolution_zero_sections(m)
1-element Vector{Vector{Vector{QQMPolyRingElem}}}:
 [[1, 1, 0], [1, 1, w], [1, 1], [1, 1], [1, 1], [1, 1]]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
weighted_resolutionsMethod
weighted_resolutions(m::AbstractFTheoryModel)

Return the list of all known weighted resolutions for the given model. If no weighted resolutions are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> weighted_resolutions(m)
1-element Vector{Vector{Vector}}:
 [Vector{Vector{Any}}[[["x", "y", "w"], [1, 1, 1]], [["x", "y", "w"], [1, 2, 1]], [["x", "y", "w"], [2, 2, 1]], [["x", "y", "w"], [2, 3, 1]], [["x", "y"], [1, 1]]], ["e1", "e4", "e2", "e3", "s"]]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
weighted_resolution_generating_sectionsMethod
weighted_resolution_generating_sections(m::AbstractFTheoryModel)

Return a list of lists of known Mordell–Weil generating sections for the given model after each known weighted resolution. Each element of the outer list corresponds to a known weighted resolution (in the same order), and each element of the list associated to a given weighted resolution corresponds to a known generating section (in the same order). If no weighted resolution generating sections are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> weighted_resolution_generating_sections(m)
1-element Vector{Vector{Vector{Vector{QQMPolyRingElem}}}}:
 [[[0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 0, 1], [a32, -a43]]]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
weighted_resolution_zero_sectionsMethod
weighted_resolution_zero_sections(m::AbstractFTheoryModel)

Return a list of known Mordell–Weil zero sections for the given model after each known weighted resolution. Each element of the list corresponds to a known weighted resolution (in the same order). If no weighted resolution zero sections are known, an error is raised.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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> weighted_resolution_zero_sections(m)
1-element Vector{Vector{Vector{QQMPolyRingElem}}}:
 [[1, 1, 0], [1, 1, w], [1, 1, w], [1, 1, w], [1, 1, w], [1, 1]]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

One can check if a model has a particular set of information. This is achieved with the following methods:

  • has_arxiv_id(m::AbstractFTheoryModel),
  • has_arxiv_doi(m::AbstractFTheoryModel),
  • has_arxiv_link(m::AbstractFTheoryModel),
  • has_arxiv_model_equation_number(m::AbstractFTheoryModel),
  • has_arxiv_model_page(m::AbstractFTheoryModel),
  • has_arxiv_model_section(m::AbstractFTheoryModel),
  • has_arxiv_version(m::AbstractFTheoryModel),
  • has_associated_literature_models(m::AbstractFTheoryModel),
  • has_generating_sections(m::AbstractFTheoryModel),
  • has_journal_doi(m::AbstractFTheoryModel),
  • has_journal_link(m::AbstractFTheoryModel),
  • has_journal_model_equation_number(m::AbstractFTheoryModel),
  • has_journal_model_page(m::AbstractFTheoryModel),
  • has_journal_model_section(m::AbstractFTheoryModel),
  • has_journal_pages(m::AbstractFTheoryModel),
  • has_journal_report_numbers(m::AbstractFTheoryModel),
  • has_journal_volume(m::AbstractFTheoryModel),
  • has_journal_year(m::AbstractFTheoryModel),
  • has_literature_identifier(m::AbstractFTheoryModel),
  • has_model_description(m::AbstractFTheoryModel),
  • has_model_parameters(m::AbstractFTheoryModel),
  • has_paper_authors(m::AbstractFTheoryModel),
  • has_paper_buzzwords(m::AbstractFTheoryModel),
  • has_paper_description(m::AbstractFTheoryModel),
  • has_paper_title(m::AbstractFTheoryModel),
  • has_related_literature_models(m::AbstractFTheoryModel),
  • has_resolutions(m::AbstractFTheoryModel),
  • has_resolution_generating_sections(m::AbstractFTheoryModel),
  • has_resolution_zero_sections(m::AbstractFTheoryModel),
  • has_weighted_resolutions(m::AbstractFTheoryModel),
  • has_weighted_resolution_generating_sections(m::AbstractFTheoryModel),
  • has_weighted_resolution_zero_sections(m::AbstractFTheoryModel),
  • has_zero_section(m::AbstractFTheoryModel).

Methods

Resolution(s) of a singular model

A central task in F-theory is to resolve a singular model. For literature models, we have stored resolutions in our data base. Upon construction of a literature model, we load these known resolutions.

In addition to listing the known resolutions with resolutions(m::AbstractFTheoryModel), the user might want to add a resolution. This can be achieved with the following method:

add_resolutionMethod
add_resolution(m::AbstractFTheoryModel, centers::Vector{Vector{String}}, exceptionals::Vector{String})

Add a known resolution for a model.

julia> m = literature_model(arxiv_id = "1109.3454", equation = "3.1")
Assuming that the first row of the given grading is the grading under Kbar

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(m, [["x", "y"], ["y", "s", "w"], ["s", "e4"], ["s", "e3"], ["s", "e1"]], ["s", "w", "e3", "e1", "e2"])

julia> length(resolutions(m))
2
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

Provided that a resolution for a model is known, we can (attempt to) resolve the model.

resolveMethod
resolve(m::AbstractFTheoryModel, index::Int)

Resolve a model with the index-th resolution that is known.

julia> B3 = projective_space(NormalToricVariety, 3)
Normal toric variety

julia> w = torusinvariant_prime_divisors(B3)[1]
Torus-invariant, prime divisor on a normal toric variety

julia> t = literature_model(arxiv_id = "1109.3454", equation = "3.1", base_space = B3, defining_classes = Dict("w" => w), completeness_check = false)
Construction over concrete base may lead to singularity enhancement. Consider computing singular_loci. However, this may take time!

Global Tate model over a concrete base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)

julia> t2 = resolve(t, 1)
Partially resolved global Tate model over a concrete base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)

julia> cox_ring(ambient_space(t2))
Multivariate polynomial ring in 12 variables over QQ graded by
  x1 -> [1 0 0 0 0 0 0]
  x2 -> [0 1 0 0 0 0 0]
  x3 -> [0 1 0 0 0 0 0]
  x4 -> [0 1 0 0 0 0 0]
  x -> [0 0 1 0 0 0 0]
  y -> [0 0 0 1 0 0 0]
  z -> [0 0 0 0 1 0 0]
  e1 -> [0 0 0 0 0 1 0]
  e4 -> [0 0 0 0 0 0 1]
  e2 -> [-1 -3 -1 1 -1 -1 0]
  e3 -> [0 4 1 -1 1 0 -1]
  s -> [2 6 -1 0 2 1 1]

julia> w2 = 2 * torusinvariant_prime_divisors(B3)[1]
Torus-invariant, non-prime divisor on a normal toric variety

julia> t3 = literature_model(arxiv_id = "1109.3454", equation = "3.1", base_space = B3, defining_classes = Dict("w" => w2), completeness_check = false)
Construction over concrete base may lead to singularity enhancement. Consider computing singular_loci. However, this may take time!

Global Tate model over a concrete base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)

julia> t4 = resolve(t3, 1)
Partially resolved global Tate model over a concrete base -- SU(5)xU(1) restricted Tate model based on arXiv paper 1109.3454 Eq. (3.1)
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source