Documentation

TauCeti.RepresentationTheory.CharacterTable.Specification

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:

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 #

Main results #

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.

noncomputable def TauCeti.centralCharacterRow {ι : Type u_1} {k : Type u} {G : Type v} [Field k] [Group G] (M : Matrix ι (ConjClasses G) k) (i : ι) (C : ConjClasses G) :
k

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
Instances For
    theorem TauCeti.centralCharacterRow_apply {ι : Type u_1} {k : Type u} {G : Type v} [Field k] [Group G] (M : Matrix ι (ConjClasses G) k) (i : ι) (C : ConjClasses G) :
    centralCharacterRow M i C = ↑(Nat.card ↑C.carrier) * M i C / M i (ConjClasses.mk 1)

    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.

    @[simp]
    theorem TauCeti.centralCharacterRow_mk_one {ι : Type u_1} {k : Type u} {G : Type v} [Field k] [Group G] {M : Matrix ι (ConjClasses G) k} {i : ι} (hM : M i (ConjClasses.mk 1) ≠ 0) :

    The normalized row is normalized: it takes the value 1 on the class of the identity, whose size is 1.

    theorem TauCeti.centralCharacterRow_mul {ι : Type u_1} {k : Type u} {G : Type v} [Field k] [Group G] {M : Matrix ι (ConjClasses G) k} {i : ι} (hM : M i (ConjClasses.mk 1) ≠ 0) (C : ConjClasses G) :
    centralCharacterRow M i C * M i (ConjClasses.mk 1) = ↑(Nat.card ↑C.carrier) * M i C

    Normalizing a row, in the division-free form: ω_i(K_C) · M i 1 = |C| · M i C.

    @[simp]
    theorem TauCeti.centralCharacterRow_submatrix {ι : Type u_1} {k : Type u} {G : Type v} [Field k] [Group G] {ι' : Type u_2} (M : Matrix ι (ConjClasses G) k) (e : ι' → ι) (i : ι') :

    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.centralCharacterRow is a common left eigenrow of the class-multiplication matrices of G (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).

    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.