Documentation

TauCeti.RepresentationTheory.CharacterTable.Dixon.ClassData.EigenvectorSearch

Searching for modular central-character rows #

The Dixon--Schneider algorithm applies simultaneous left-eigenvector search to the class- multiplication matrices. This file makes that specialization executable for TauCeti.ClassData: TauCeti.ClassData.centralCharacterSearch searches the transposed numbered class matrices, and hence returns eigenvalue tuples rather than arbitrarily scaled eigenvectors.

The main correctness theorem, TauCeti.ClassData.mem_centralCharacterSearch, identifies the output exactly with normalized common eigenrows. The normalization is not imposed by an extra filter. Multiplication by the identity class forces its eigenvalue to be 1, and evaluating the other eigenvector equations in the identity coordinate shows that every returned eigenvalue tuple is the unique normalization of its common eigenvector.

This is the bridge between the generic finite-field search in TauCeti.LinearAlgebra.Matrix.JointEigenvalueSearch and the reduced central-character table in the Dixon--Schneider pipeline. Nothing here counts the output. Under a general splitting hypothesis the count is TauCeti.ClassData.card_centralCharacterSearch; its good-prime specialization is TauCeti.ClassData.card_centralCharacterSearch_of_isGoodDixonPrime.

Main definitions #

Main results #

References #

This advances Layer 6, "The eigenvector search", of the character theory roadmap.

The i-th numbered class-multiplication matrix, reduced from into F.

Equations
Instances For
    @[simp]
    theorem TauCeti.ClassData.modularClassMatrix_apply {G : Type u_1} [Group G] [Fintype G] [DecidableEq G] (d : ClassData G) {F : Type u_2} [CommRing F] (i j k : Fin d.numClasses) :

    The numbered modular class matrix is a renumbering of the class-indexed one. This is TauCeti.ClassData.classMultMatrix_eq_submatrix pushed through the reduction map, and is what transports the class-indexed matrix API to the numbered family.

    def TauCeti.ClassData.IsModularEigenrow {G : Type u_1} [Group G] [Fintype G] [DecidableEq G] (d : ClassData G) {F : Type u_2} [CommRing F] (v : Fin d.numClassesF) :

    A numbered row is a common left eigenrow when its eigenvalue for the i-th class matrix is its own i-th entry.

    Equations
    Instances For
      theorem TauCeti.ClassData.isModularEigenrow_def {G : Type u_1} [Group G] [Fintype G] [DecidableEq G] (d : ClassData G) {F : Type u_2} [CommRing F] (v : Fin d.numClassesF) :

      TauCeti.ClassData.IsModularEigenrow restated in its defining vector form, for consumers that want the literal eigenvector equation without unfolding the definition.

      def TauCeti.ClassData.reindexModularRow {G : Type u_1} [Group G] [Fintype G] [DecidableEq G] (d : ClassData G) {F : Type u_2} (v : Fin d.numClassesF) :
      ConjClasses GF

      Transport a numbered row along the numbering equivalence to a row indexed by conjugacy classes.

      Equations
      Instances For
        @[simp]
        theorem TauCeti.ClassData.reindexModularRow_classOf {G : Type u_1} [Group G] [Fintype G] [DecidableEq G] (d : ClassData G) {F : Type u_2} (v : Fin d.numClassesF) (i : Fin d.numClasses) :
        theorem TauCeti.ClassData.isModularEigenrow_iff {G : Type u_1} [Group G] [Fintype G] [DecidableEq G] (d : ClassData G) {F : Type u_2} [CommRing F] (v : Fin d.numClassesF) :
        d.IsModularEigenrow v ∀ (i j : Fin d.numClasses), k : Fin d.numClasses, (d.structureConstant i j k) * v k = v i * v j

        The numbered eigenrow condition in scalar structure-constant form.

        theorem TauCeti.ClassData.IsModularEigenrow.map {G : Type u_1} [Group G] [Fintype G] [DecidableEq G] {F : Type u_2} [CommRing F] {d : ClassData G} {S : Type u_3} [CommRing S] {v : Fin d.numClassesF} (h : d.IsModularEigenrow v) (f : F →+* S) :
        d.IsModularEigenrow fun (j : Fin d.numClasses) => f (v j)

        A common eigenrow remains a common eigenrow after applying a ring homomorphism entrywise.

        Renumbering identifies the executable numbered eigenrow condition with the class-indexed TauCeti.IsClassEigenrow predicate used by the class-algebra API.

        Renumbering matches the normalized numbered eigenrows with the normalized class-indexed ones, bundling TauCeti.ClassData.reindexModularRow and TauCeti.ClassData.isModularEigenrow_iff_isClassEigenrow as an equivalence. It is what carries a count of the class-indexed eigenrows over to the output of the executable search.

        Equations
        Instances For
          @[simp]
          theorem TauCeti.ClassData.coe_modularEigenrowEquiv {G : Type u_1} [Group G] [Fintype G] [DecidableEq G] (d : ClassData G) {F : Type u_2} [CommRing F] (a : { a : Fin d.numClassesF // a (d.index 1) = 1 d.IsModularEigenrow a }) :
          @[simp]
          theorem TauCeti.ClassData.modularEigenrowEquiv_symm_apply {G : Type u_1} [Group G] [Fintype G] [DecidableEq G] (d : ClassData G) {F : Type u_2} [CommRing F] (v : { v : ConjClasses GF // v (ConjClasses.mk 1) = 1 IsClassEigenrow v }) (i : Fin d.numClasses) :
          (d.modularEigenrowEquiv.symm v) i = v (d.classOf i)

          Applying the inverse renumbering equivalence at a numbered class recovers the corresponding class-indexed entry.

          @[simp]

          The numbered modular class matrix belonging to the identity conjugacy class is the identity matrix. This is TauCeti.classMultMatrix_mk_one, renumbered.

          The identity coordinate of v ᵥ* Mᵢ is v i. This coordinate is what turns the eigenvalues found by simultaneous search into a canonically normalized eigenrow. It is TauCeti.vecMul_classMultMatrix_apply at the class of 1, renumbered.

          Search for the simultaneous left-eigenvalue tuples of the numbered modular class matrices.

          The generic search is a column-eigenvector search, so the family is transposed here. The output is a Finset, making this definition directly executable for ZMod p and other finite fields.

          Equations
          Instances For

            A tuple returned by TauCeti.ClassData.centralCharacterSearch is normalized at the identity class.

            Every tuple returned by the search satisfies the numbered common-eigenrow equations.

            @[simp]

            Correctness of the modular central-character search. A tuple occurs exactly when it is a normalized common left eigenrow of the numbered class-multiplication matrices.

            The forward implication is the normalization argument: any nonzero common eigenvector has a nonzero identity coordinate, and division by that coordinate gives the eigenvalue tuple. The reverse implication feeds the row itself to the generic common-eigenvector search.

            The searched rows are exactly the modular central characters. Membership in the executable search is equivalent to being the values on numbered class sums of an algebra homomorphism from the centre of F[G] to F.

            This statement does not require the good-prime hypothesis. The exact count under a general splitting hypothesis is TauCeti.ClassData.card_centralCharacterSearch; at a good Dixon prime it is TauCeti.ClassData.card_centralCharacterSearch_of_isGoodDixonPrime.