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_spaces
— Methodfamily_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
This function is part of the experimental code in Oscar. Please read here for more details.
family_of_spaces
— Methodfamily_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
This function is part of the experimental code in Oscar. Please read here for more details.
Attributes
The following methods provide access to core attributes of a family of spaces:
coordinate_ring
— Methodcoordinate_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]
This function is part of the experimental code in Oscar. Please read here for more details.
weights
— Methodweights(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
This function is part of the experimental code in Oscar. Please read here for more details.
dim
— Methoddim(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
This function is part of the experimental code in Oscar. Please read here for more details.
irrelevant_ideal
— Methodirrelevant_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
This function is part of the experimental code in Oscar. Please read here for more details.
ideal_of_linear_relations
— Methodideal_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
This function is part of the experimental code in Oscar. Please read here for more details.
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.