Belyi-map records and the translation of stored triples #
The LMFDB table of Belyi maps stores, for each Galois orbit of Belyi maps, the monodromy triples
of the maps in the orbit. The database composes permutations from left to right, so a stored
triple (σ0, σ1, σinf) satisfies σ0 * σ1 * σinf = 1 in Mathlib's multiplication, the opposite
of the relation σinf * σ1 * σ0 = 1 imposed on a TauCeti.PermutationTriple. Such a stored
triple is a TauCeti.PermutationTriple.LMFDB.StoredTriple, and the triple it denotes is its
image TauCeti.PermutationTriple.LMFDB.StoredTriple.toTriple under the inverse of
TauCeti.PermutationTriple.equivOppositeConvention: the componentwise inverse.
The first part of this file proves that this translation preserves every invariant a record
asserts, each computed directly on the stored permutations: the ordered full cycle partitions,
the orders, the monodromy group, connectedness, the automorphism group, the Euler
characteristic and genus, and membership in a passport. It also commutes with relabeling the
sheets. Reading a stored triple without the translation is wrong as soon as its first two
components do not commute, by
TauCeti.PermutationTriple.LMFDB.StoredTriple.mul_mul_eq_one_iff_commute, so a stored triple
whose first two components commute cannot detect the convention.
The second part mirrors one row of the table as a TauCeti.PermutationTriple.LMFDB.BelyiRecord.
Its stored triples are listed position by position against the stored complex embeddings of the
base field, which is recorded by the field
TauCeti.PermutationTriple.LMFDB.BelyiRecord.storedEmbeddingCount_eq_triplesLength. The number of
embedding entries is the natural number
TauCeti.PermutationTriple.LMFDB.BelyiRecord.storedEmbeddingCount, and the stored orbit size is
asserted to equal it, not the size of a Galois orbit of isomorphism classes: several stored
triples may be simultaneously conjugate, so the isomorphism classes they represent,
TauCeti.PermutationTriple.LMFDB.BelyiRecord.storedClasses, may be fewer than the stored
entries. TauCeti.PermutationTriple.LMFDB.BelyiRecord.IsValidFor states what a row asserts about
a passport, and the theorems following it read the stored partitions, genus, and monodromy group
off the stored permutations, and bound the number of stored classes by the passport size.
The table also stores each triple in disjoint cycle notation, which omits fixed points and writes
the identity as the empty product. A row parses it into lists of cycles
(TauCeti.PermutationTriple.LMFDB.CycleNotationTriple), and validity asks that it be a disjoint
cycle notation (Equiv.Perm.IsCycleNotation) for the stored triple in the same position. The
notation is not translated: the stored notation of a component is reversed cycle by cycle to give
the notation of the corresponding component of the translated triple
(TauCeti.PermutationTriple.LMFDB.StoredTriple.IsCycleNotation.isCycleNotation_toTriple_σ0). The
listed lengths are the stored permutation's Equiv.Perm.cycleType, so the stored partitions are
the listed lengths padded by parts equal to one
(TauCeti.PermutationTriple.LMFDB.BelyiRecord.IsValidFor.lambdas_eq_of_mem_triplesCyc).
The stored base field, the defining equations of the curve and the map, the floating-point values of the embeddings, and the labels are carried as data and are not interpreted here.
Main definitions #
TauCeti.PermutationTriple.LMFDB.StoredTriple: a triple in the database's convention.TauCeti.PermutationTriple.LMFDB.StoredTriple.toTriple: the triple it denotes.TauCeti.PermutationTriple.LMFDB.StoredTriple.IsCycleNotation: a stored triple written in disjoint cycle notation.TauCeti.PermutationTriple.LMFDB.BelyiRecord: a parsed row of the Belyi-map table.TauCeti.PermutationTriple.LMFDB.BelyiRecord.storedEmbeddingCount: the number of stored embedding entries.TauCeti.PermutationTriple.LMFDB.BelyiRecord.IsValidFor: validity of a row for a passport.
Main results #
TauCeti.PermutationTriple.LMFDB.StoredTriple.toTriple_eq_iff: the translation is the opposite-convention equivalence.TauCeti.PermutationTriple.LMFDB.StoredTriple.genus_toTripleandTauCeti.PermutationTriple.LMFDB.StoredTriple.hasPassport_toTriple_iff, with their companions: the invariants of the translated triple, read off the stored permutations.TauCeti.PermutationTriple.LMFDB.BelyiRecord.IsValidFor.lambdas_eq_of_mem_triplesCyc: the stored partitions of a valid row are the cycle lengths of its stored cycle notation, padded by fixed points.TauCeti.PermutationTriple.LMFDB.BelyiRecord.IsValidFor.card_storedClasses_le_passportSize: the stored triples of a valid row represent at most as many isomorphism classes as the passport has.
References #
- M. Musty, S. Schiavone, J. Sijsling, J. Voight, A database of Belyi maps, Proceedings of the Thirteenth Algorithmic Number Theory Symposium, Open Book Series 2, 2019, §2.
- LMFDB, Belyi maps.
The permutation triple denoted by a stored triple: its image under the inverse of the opposite-convention equivalence, which inverts every component.
Instances For
A stored triple denotes t exactly when it is the opposite-convention form of t.
The stored components also satisfy this library's relation exactly when the first two of them commute. A stored triple whose first two components do not commute is therefore not a permutation triple when read without translation.
Relabeling a stored triple relabels the triple it denotes.
Invariants of the translated triple #
The ordered full cycle partitions of the translated triple are those of the stored components.
The orders of the components of the translated triple are those of the stored components.
The monodromy group of the translated triple is generated by the first two stored components.
The translated triple is connected exactly when there is a sheet and the first two stored components generate a transitive group.
The automorphism group of the translated triple is the simultaneous centralizer of the first two stored components.
The Euler characteristic of the translated triple, counted on the stored components.
The genus of the translated triple, counted on the stored components.
A connected translated triple has passport P exactly when the group generated by the
first two stored components is conjugate to the reference group of P and the stored components
have the partitions of P.
Stored cycle notation #
c writes each component of s in disjoint cycle notation, as the database stores it: fixed
points are omitted and the identity is the empty list of cycles.
- σ0 : (↑s).1.IsCycleNotation c.1
c.1writes the first stored component. - σ1 : (↑s).2.1.IsCycleNotation c.2.1
c.2.1writes the second stored component. - σinf : (↑s).2.2.IsCycleNotation c.2.2
c.2.2writes the third stored component.
Instances For
Every stored triple can be written in disjoint cycle notation.
The stored cycle notation of the first component, reversed cycle by cycle, writes the first component of the translated triple.
The stored cycle notation of the second component, reversed cycle by cycle, writes the second component of the translated triple.
The stored cycle notation of the third component, reversed cycle by cycle, writes the third component of the translated triple.
The ordered full cycle partitions of the translated triple are the cycle lengths of the stored cycle notation, each padded by one part equal to one for every point it omits.
Belyi-map records #
A row of the LMFDB table of Belyi maps in degree n, with its stored fields parsed into Lean
data. The row describes one Galois orbit of Belyi maps. Its stored degree is the field deg,
which validity identifies with n.
The stored triples are kept in the database's convention, as StoredTriples, and are listed
position by position against the stored complex embeddings of the base field: the i-th triple
is the monodromy of the map under the i-th embedding. The remaining fields are carried as data
and are not interpreted here.
- label : String
The stored label of the Galois orbit.
- plabel : String
The stored label of the passport containing the orbit.
- deg : ℕ
The stored degree.
The stored full cycle partitions at
0,1, and∞, fixed points included.- g : ℕ
The stored genus.
- orbitSize : ℕ
The stored orbit size.
The stored coefficients, in increasing degree, of a defining polynomial of the base field over which the stored equations are written. This is a field of definition of each map in the orbit, and is not asserted to be its field of moduli.
The stored floating-point values, as real and imaginary parts, of the complex embeddings of the base field.
- triples : List (StoredTriple n)
The stored triples, in the database's convention.
- triplesCyc : List (CycleNotationTriple n)
The stored triples in cycle notation, parsed into lists of cycles. The notation omits fixed points and writes the identity as the empty list of cycles.
- curve : String
The stored equations of the curve.
- map : String
The stored formula for the map.
- planeModel : String
The stored plane model of the curve.
- planeConstant : String
The stored constant attached to the plane model.
The stored label of the associated curve, absent on rows that have none.
The stored labels of related objects.
The stored triples are indexed by the stored embeddings, position by position.
Instances For
The number of stored embedding entries of a row. This is a count of stored entries, not the size of a Galois orbit of isomorphism classes.
Instances For
The isomorphism classes of the triples denoted by the stored triples.
Instances For
The stored triples represent at most as many isomorphism classes as there are stored embedding entries. The inequality is strict when two stored triples are simultaneously conjugate.
A row is valid for the passport P when its stored degree is the degree, its stored orbit
size is its number of stored embedding entries, it stores at least one triple, every stored
triple denotes a connected triple with passport P, its stored cycle notation writes the stored
triples position by position, the stored partitions are those of P, and the stored genus is the
genus of every stored triple.
The labels, the base field, the equations, and the embedding values are not constrained.
The stored degree is the degree.
The stored orbit size is the number of stored embedding entries.
At least one triple is stored.
- hasPassport (s : StoredTriple n) : s ∈ r.triples → ∃ (hs : s.toTriple.IsConnected), PassportSpec.HasPassport ⟨s.toTriple, hs⟩ P
Every stored triple denotes a connected triple with passport
P. - forall₂_isCycleNotation : List.Forall₂ (fun (c : CycleNotationTriple n) (s : StoredTriple n) => s.IsCycleNotation c) r.triplesCyc r.triples
The stored cycle notation writes the stored triples, position by position.
The stored partitions are those of
P.The stored genus is the genus of every stored triple.
Instances For
Every stored triple of a valid row denotes a connected triple.
The passport of a valid row is admissible.
The stored orbit size of a valid row is its number of stored triples.
The stored orbit size of a valid row is positive.
The stored partitions of a valid row are the ordered cycle data of every stored triple.
The stored partitions of a valid row are the full cycle partitions of the stored components of every stored triple, read in the database's convention.
The stored partitions of a valid row are the cycle types of the stored components, which omit fixed points, padded by one part equal to one for each fixed point.
A valid row stores one cycle notation for each stored triple.
Every stored cycle notation of a valid row writes one of its stored triples.
The stored partitions from the stored cycle notation. The stored partitions of a valid row are the cycle lengths of each of its stored cycle notations, padded by one part equal to one for every omitted fixed point.
In a valid row, the group generated by the first two stored components of every stored triple is conjugate to the reference group of the passport.
The stored genus of a valid row, counted on the stored components of any stored triple.
The stored genus of a valid row is the genus of every connected triple with its passport.
Every stored class of a valid row is the class of a connected triple in its passport.
The stored triples of a valid row represent at most as many isomorphism classes as its passport contains.
Every connected triple is the stored triple of a formal row that is valid for its passport, so
TauCeti.PermutationTriple.LMFDB.BelyiRecord.IsValidFor is not vacuous. The row carries
placeholder data in the fields that validity leaves unconstrained: the base-field polynomial
X - 1 with a single embedding entry, and empty labels and equations. Its cycle notation is some
disjoint cycle notation for the stored triple. It is not a certificate that
the corresponding Belyi map is defined over ℚ, which this theorem does not establish.