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_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.
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
This function is part of the experimental code in Oscar. Please read here for more details.
Attributes
We currently support the following attributes:
coordinate_ring
— Methodcoordinate_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
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.
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
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.
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
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.
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
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.
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.