Families of Spaces

Many F-theory constructions (e.g. in the literature) work without fully specifying the base space of the elliptic fibrations. Put differently, those works consider an entire family of base spaces. We aim to support this data structure.

Note of caution: This data structure is subject to discussion. The exact implementation details may change drastically in the future. Use with care (as all experimental code, of course).

Constructors

We currently support the following constructor:

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.

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> d = 3
3

julia> f = family_of_spaces(coord_ring, grading, d)
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

We currently support the following attributes:

coordinate_ringMethod
coordinate_ring(f::FamilyOfSpaces)

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

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> d = 3
3

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

julia> coordinate_ring(f)
Multivariate polynomial ring in 4 variables f, g, Kbar, u
  over rational field
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.

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> d = 3
3

julia> f = family_of_spaces(ring, grading, d)
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.

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> d = 3
3

julia> f = family_of_spaces(ring, grading, d)
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.

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> d = 3
3

julia> f = family_of_spaces(coord_ring, grading, d)
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.

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