Families of Spaces

Many F-theory constructions in the literature work without fully specifying the base space of the elliptic fibration. Put differently, they describe an entire family of base spaces rather than a single one. OSCAR supports such families via a dedicated data structure.

Note of caution: This data structure is still experimental and under discussion. The implementation details may change significantly in the future. Use with care.


Constructors

The following constructors are currently supported for creating a FamilyOfSpaces object:

family_of_spacesMethod
family_of_spaces(coordinate_ring::MPolyRing, grading::Matrix{Int64}, dim::Int)

Return a family of spaces that is (currently) used to build families of F-theory models, defined by using a family of base spaces for an elliptic fibration. It is specified by the following data:

  • A polynomial ring. This may be thought of as the coordinate ring of the generic member in this family of spaces.
  • A grading for this polynomial ring. This may be thought of as specifying certain line bundles on the generic member in this family of spaces. Of particular interest for F-theory is always the canonical bundle. For this reason, the first row is always thought of as grading the coordinate ring with regard to the canonical bundle. Or put differently, if a variable shares the weight 1 in the first row, then this means that we should think of this coordinate as a section of 1 times the canonical bundle.
  • An integer, which specifies the dimension of the generic member within this family of spaces.

Note that the coordinate ring can have strictly more variables than the dimension. This is a desired feature for most, if not all, F-theory literature constructions.

Examples

julia> coord_ring, _ = QQ[:f, :g, :Kbar, :u];

julia> grading = [4 6 1 0; 0 0 0 1]
2×4 Matrix{Int64}:
 4  6  1  0
 0  0  0  1

julia> family_of_spaces(coord_ring, grading, 3)
Family of spaces of dimension d = 3
Experimental

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

source
family_of_spacesMethod
family_of_spaces(coordinate_ring::MPolyDecRing{QQFieldElem, QQMPolyRing}, dim::Int)

Return a family of spaces.

Examples

julia> coord_ring, _ = QQ[:f, :g, :Kbar, :u];

julia> grading = [4 6 1 0; 0 0 0 1]
2×4 Matrix{Int64}:
 4  6  1  0
 0  0  0  1

julia> graded_coord_ring, _ = grade(coord_ring, grading);

julia> family_of_spaces(graded_coord_ring, 3)
Family of spaces of dimension d = 3
Experimental

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

source

Attributes

The following methods provide access to core attributes of a family of spaces:

coordinate_ringMethod
coordinate_ring(f::FamilyOfSpaces)

Return the coordinate ring of a generic member of the family of spaces.

Examples

julia> ring, (f, g, Kbar, u) = QQ[:f, :g, :Kbar, :u]
(Multivariate polynomial ring in 4 variables over QQ, QQMPolyRingElem[f, g, Kbar, u])

julia> grading = [4 6 1 0; 0 0 0 1]
2×4 Matrix{Int64}:
 4  6  1  0
 0  0  0  1

julia> f = family_of_spaces(ring, grading, 3)
Family of spaces of dimension d = 3

julia> coordinate_ring(f)
Multivariate polynomial ring in 4 variables over QQ graded by
  f -> [4 0]
  g -> [6 0]
  Kbar -> [1 0]
  u -> [0 1]
Experimental

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

source
weightsMethod
weights(f::FamilyOfSpaces)

Return the grading of the coordinate ring of a generic member of the family of spaces.

Examples

julia> ring, (f, g, Kbar, u) = QQ[:f, :g, :Kbar, :u]
(Multivariate polynomial ring in 4 variables over QQ, QQMPolyRingElem[f, g, Kbar, u])

julia> grading = [4 6 1 0; 0 0 0 1]
2×4 Matrix{Int64}:
 4  6  1  0
 0  0  0  1

julia> f = family_of_spaces(ring, grading, 3)
Family of spaces of dimension d = 3

julia> weights(f)
2×4 Matrix{Int64}:
 4  6  1  0
 0  0  0  1
Experimental

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

source
dimMethod
dim(f::FamilyOfSpaces)

Return the dimension of the generic member of the family of spaces.

Examples

julia> ring, (f, g, Kbar, u) = QQ[:f, :g, :Kbar, :u]
(Multivariate polynomial ring in 4 variables over QQ, QQMPolyRingElem[f, g, Kbar, u])

julia> grading = [4 6 1 0; 0 0 0 1]
2×4 Matrix{Int64}:
 4  6  1  0
 0  0  0  1

julia> f = family_of_spaces(ring, grading, 3)
Family of spaces of dimension d = 3

julia> dim(f)
3
Experimental

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

source
irrelevant_idealMethod
irrelevant_ideal(f::FamilyOfSpaces)

Return the equivalent of the irrelevant ideal for the generic member of the family of spaces.

Examples

julia> coord_ring, (f, g, Kbar, u) = QQ[:f, :g, :Kbar, :u]
(Multivariate polynomial ring in 4 variables over QQ, QQMPolyRingElem[f, g, Kbar, u])

julia> grading = [4 6 1 0; 0 0 0 1]
2×4 Matrix{Int64}:
 4  6  1  0
 0  0  0  1

julia> f = family_of_spaces(coord_ring, grading, 3)
Family of spaces of dimension d = 3

julia> irrelevant_ideal(f)
Ideal generated by
  f
  g
  Kbar
  u
Experimental

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

source
ideal_of_linear_relationsMethod
ideal_of_linear_relations(f::FamilyOfSpaces)

Return the equivalent of the ideal of linear relations for the generic member of the family of spaces.

Examples

julia> coord_ring, (f, g, Kbar, u) = QQ[:f, :g, :Kbar, :u]
(Multivariate polynomial ring in 4 variables over QQ, QQMPolyRingElem[f, g, Kbar, u])

julia> grading = [4 6 1 0; 0 0 0 1]
2×4 Matrix{Int64}:
 4  6  1  0
 0  0  0  1

julia> f = family_of_spaces(coord_ring, grading, 3)
Family of spaces of dimension d = 3

julia> ideal_of_linear_relations(f)
Ideal generated by
  -5*f + 3*g + 2*Kbar
  -3*f + 2*g
Experimental

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

source

Printouts and Verbosity Control

To receive diagnostic information whenever a FamilyOfSpaces object is used (e.g. for debugging or introspection), set the verbosity level as follows:

set_verbosity_level(:FTheoryModelPrinter, 1)

More details on verbosity settings are available in the Hecke documentation.