The specification a character table satisfies, and the labeled uniqueness it forces #
Let G be a finite group. Its complex character table TauCeti.characterTable ℂ G is a square
matrix whose rows are indexed by an arbitrary enumeration of the irreducible characters and whose
columns are labeled by the conjugacy classes themselves. This file writes down a property
TauCeti.IsCharacterTableSpec of an arbitrary such matrix, proves that the character table has
it, and proves that it pins the character table down: any matrix with this property is the
character table up to a permutation of its rows.
The property is the checker of the Burnside--Dixon--Schneider algorithm. Its three ingredients are the data that algorithm produces and can verify without knowing any representation theory:
- the identity column consists of positive integers dividing
|G|whose squares sum to|G|; - the rows are orthonormal for the class-size weighted Hermitian pairing;
- each normalized row
ω_i(K_C) = |C| · M i C / M i 1(TauCeti.centralCharacterRow) is a common left eigenrow of the class-multiplication matrices, the eigenvalue atCbeing its own value there.
Uniqueness is the reason this is worth having: an algorithm that returns a matrix passing the
checker has returned the character table. The proof matches each normalized row with a row of the
central character table Ω (TauCeti.isClassEigenrow_iff_exists_centralCharacterTable_eq, which
identifies the normalized common left eigenrows with the central characters of the irreducibles),
recovers the degree of that irreducible from the self-pairing of the row, and reads the ordinary row
off Ω by TauCeti.characterTable_eq_div. Distinct rows of the matrix stay distinct because
orthonormality forbids repetitions, so the matching is a permutation.
Main definitions #
TauCeti.centralCharacterRow: the normalized rowω_iof a candidate character table.TauCeti.IsCharacterTableSpec: the specification itself.
Main results #
TauCeti.isCharacterTableSpec_characterTable: the character table satisfies the specification.TauCeti.characterTable_unique_rows: labeled uniqueness, a matrix satisfying the specification is the character table up to a permutation of rows. WithTauCeti.IsCharacterTableSpec.submatrix, that a row permutation preserves the specification, this becomes the characterizationTauCeti.isCharacterTableSpec_iff_exists_permof the matrices satisfying it, andTauCeti.IsCharacterTableSpec.exists_perm_eq: any two of them differ by a permutation of rows.TauCeti.IsCharacterTableSpec.sum_apply_mk_one_eq_sum_characterDegree: the identity column of such a matrix sums to the sum of the character degrees.TauCeti.IsCharacterTableSpec.exists_eq_characterTable: the row-by-row form of uniqueness, that every row is a row of the character table.
Implementation notes #
The specification is stated over ℂ, where the roadmap pins it: its orthonormality condition is
the Hermitian one, which is the form the algorithm checks. The normalized row
TauCeti.centralCharacterRow needs no such restriction and is defined over any field, so that
TauCeti.centralCharacterRow_characterTable (the normalized rows of the character table are the
rows of the central character table) is available wherever the two tables are. Normalizing reads
only the row it is given, so it is also defined for a matrix with any row index type, and only
TauCeti.centralCharacterRow_characterTable and the specification itself ask for the character
table's.
The group is an explicit argument of TauCeti.IsCharacterTableSpec, as the roadmap pins it: the
specification is read as a statement about G, and IsCharacterTableSpec G M says what it says
without having to recover G from the type of M.
Three of the four conditions do the work in TauCeti.characterTable_unique_rows: the positivity
and integrality of the degrees, row orthonormality, and the eigenrow condition. The divisibility
dᵢ ∣ |G| and the identity ∑ dᵢ² = |G| are part of the checker as the roadmap pins it, being
what the algorithm tests after the eigenvector search and before lifting; they are recorded here
because the character table satisfies them, not because uniqueness needs them.
References #
This is the specification and the labeled uniqueness of Layer 5 of the
character theory roadmap
(IsCharacterTableSpec, isCharacterTableSpec_characterTable and characterTable_unique_rows in
that roadmap's Suggested.lean). See J. D. Dixon, High speed computation of group characters,
Numer. Math. 10 (1967) 446-450, and I. M. Isaacs, Character Theory of Finite Groups (1976),
Chapter 3.
The normalized row ω_i(K_C) = |C| · M i C / M i 1 of a candidate character table M.
For the character table itself this is the corresponding row of the central character table
(TauCeti.centralCharacterRow_characterTable), which is why the specification of a character table
asks for its normalized rows, rather than its rows, to be eigenrows of the class-multiplication
matrices.
Equations
- TauCeti.centralCharacterRow M i C = ↑(Nat.card ↑C.carrier) * M i C / M i (ConjClasses.mk 1)
Instances For
The normalized row, unfolded. The definition is not @[expose]d, so this is how it unfolds
outside this file; it is deliberately not @[simp], because the specification and its consequences
are stated about TauCeti.centralCharacterRow as a whole, and unfolding it would take them out of
the shape in which the eigenrow API applies.
The normalized row is normalized: it takes the value 1 on the class of the identity, whose
size is 1.
Normalizing a row, in the division-free form: ω_i(K_C) · M i 1 = |C| · M i C.
Reindexing the rows of a matrix reindexes its normalized rows; in particular a permutation of the rows permutes them.
The normalized rows of the character table are the rows of the central character table.
Both say ω_i(K_C) = |C| · χᵢ(g_C) / χᵢ(1); the hypothesis is that the degree χᵢ(1) does not
vanish in k, which holds automatically in characteristic zero.
The specification of a complex character table. A square matrix M whose columns are
labeled by the conjugacy classes of G satisfies it when
- its identity column consists of positive integers dividing
|G|, whose squares sum to|G|; - its rows are orthonormal for the class-size weighted Hermitian pairing on class functions;
- each of its normalized rows
TauCeti.centralCharacterRowis a common left eigenrow of the class-multiplication matrices ofG(TauCeti.IsClassEigenrow).
These are conditions on the structure constants of the class algebra and on the entries of M
alone, mentioning no representation, and they determine M up to a permutation of its rows
(TauCeti.characterTable_unique_rows).
- exists_degree (i : Fin (Nat.card (ConjClasses G))) : ∃ (d : ℕ), 0 < d ∧ M i (ConjClasses.mk 1) = ↑d ∧ d ∣ Nat.card G
The identity column consists of positive integers dividing the order of
G. The squares of the identity column sum to the order of
G.- row_orthonormal (i j : Fin (Nat.card (ConjClasses G))) : (↑(Nat.card G))⁻¹ * ∑ C : ConjClasses G, ↑(Nat.card ↑C.carrier) * M i C * (starRingEnd ℂ) (M j C) = if i = j then 1 else 0
The rows are orthonormal for the class-size weighted Hermitian pairing.
- row_eigen (i : Fin (Nat.card (ConjClasses G))) : IsClassEigenrow (centralCharacterRow M i)
Each normalized row is a common left eigenrow of the class-multiplication matrices.
Instances For
The character table satisfies its specification. The identity column lists the degrees,
which are positive and divide |G| and whose squares sum to |G|; the rows are orthonormal by the
first orthogonality relation; and the normalized rows are the rows of the central character table,
which are eigenrows because a central character is an algebra homomorphism out of the centre.
The identity column of a matrix satisfying the specification has no zero entry.
Every row of a matrix satisfying the specification is a row of the character table.
Its normalized row is a normalized common left eigenrow of the class-multiplication matrices, hence the central character of some irreducible; the self-pairing of the row then forces the degree of that irreducible to be the identity entry of the row, and the two rows agree class by class.
Permuting the rows of a matrix satisfying the specification gives a matrix satisfying it.
Labeled uniqueness of the character table. With the columns labeled by the conjugacy
classes of G, a matrix satisfying the specification is the character table up to a permutation of
its rows, and of its rows only.
Each row is a row of the character table (TauCeti.IsCharacterTableSpec.exists_eq_characterTable),
and the assignment is injective because two equal rows would pair to 1 rather than to 0; an
injective self-map of a finite type is a permutation.
The matrices satisfying the specification are exactly the row permutations of the character table: the specification recognizes the character table, and nothing else.
Any two matrices satisfying the specification differ by a permutation of rows. Both are the character table up to such a permutation, so a solver that returns a matrix passing the checker has returned the same table as any other.
The identity column of a matrix satisfying the specification sums to the sum of the character degrees: it is the identity column of the character table with its rows permuted.