Documentation

TauCeti.GroupTheory.SpecificGroups.CFSG.Index

Indices for the classification of finite simple groups #

This file defines the parameters and indexing types for the eventual statement of the classification of finite simple groups. The Lie-type index records the family, rank, and finite field parameter as data. Its validity predicate first imposes the conventional rank and small-field ranges and then removes the six remaining duplicate representatives. A Lie-type index also determines its underlying untwisted Dynkin diagram, characteristic, and Frobenius parameter.

The twenty-six sporadic names and the four-way TauCeti.CFSGIndex complete the indexing layer. No definition here asserts that a named group is finite or simple; the groups themselves are built from these indices elsewhere, the Lie-type entries as TauCeti.ValidLieTypeIndex.Group.

The twisted families use the Gorenstein--Lyons--Solomon and ATLAS small-field convention. Thus twistedA 2 q denotes ²A₂(q), with a matrix realization over the field of q² elements, while q itself is the Frobenius parameter. The Suzuki--Ree families instead record m in the field order p ^ (2 * m + 1).

Main definitions #

References #

The family names and parameter conventions, including the small isomorphism exclusions, follow Gorenstein--Lyons--Solomon, The Classification of the Finite Simple Groups, and Conway et al., Atlas of Finite Groups. The underlying diagrams are the Bourbaki-numbered TauCeti.DynkinType.

For the two families on the rank-two diagram B₂, the names B₂(q) and ²B₂(2^(2m+1)), the retention of the rank-two symplectic family under the B name, and the isomorphisms that exclude B₂(2), B₂(3) and ²B₂(2) are those of Gorenstein--Lyons--Solomon, Number 1, §2.2, and of the Atlas; the diagram itself is N. Bourbaki, Lie Groups and Lie Algebras, Chapters 4--6, Plate II at rank two.

Prime powers and Lie-type families #

A prime power p ^ exponent, retaining the prime and positive exponent needed to construct its finite field. Unlike the proposition IsPrimePow, this is parameter data rather than a property of an already specified cardinality.

  • p : ℕ

    The prime base of the prime power.

  • exponent : ℕ

    The positive exponent of the prime power.

  • prime_p : Nat.Prime self.p
  • exponent_pos : 0 < self.exponent
Instances For
    theorem TauCeti.PrimePower.ext {x y : PrimePower} (p : x.p = y.p) (exponent : x.exponent = y.exponent) :
    x = y
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      The cardinality represented by a prime-power parameter.

      Equations
      Instances For
        @[simp]

        The stored cardinality is the stored base raised to the stored exponent.

        The cardinality stored by a prime-power parameter is a prime power in Mathlib's sense.

        The families of finite groups of Lie type, with ranks given by Dynkin subscripts.

        The ordinary and graph-twisted constructors use the small-field GLS/ATLAS parameter q. The three Suzuki--Ree constructors record the integer m in field order p ^ (2 * m + 1). The Tits group ²F₄(2)' is listed separately from the uniform Ree family.

        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Conventional rank and small-field restrictions on the Lie-type families. These remove the nonsimple members and systematic low-rank or characteristic-two overlaps. This is indexing data; it does not assert finiteness or simplicity of a group.

            The B family starts at rank two, while C starts at rank three and has odd characteristic. Thus B₂(q) = C₂(q) is always named B₂(q), and the characteristic-two coincidence Bₙ(q) = Cₙ(q) is also kept only in the B family.

            Equations
            Instances For
              @[simp]
              theorem TauCeti.LieTypeIndex.inStandardRange_iff (d : LieTypeIndex) :
              d.InStandardRange ↔ match d with | A rank q => 1 ≤ rank ∧ (rank = 1 → 4 ≤ q.card) | twistedA rank q => 2 ≤ rank ∧ (rank = 2 → 3 ≤ q.card) | B rank q => 2 ≤ rank ∧ ¬(rank = 2 ∧ q.card = 2) | C rank q => 3 ≤ rank ∧ q.p ≠ 2 | D rank q => 4 ≤ rank | twistedD rank q => 4 ≤ rank | G2 q => 3 ≤ q.card | suzuki m => 1 ≤ m | reeG2 m => 1 ≤ m | reeF4 m => 1 ≤ m | E6 q => True | E7 q => True | E8 q => True | F4 q => True | twistedE6 q => True | trialityD4 q => True | tits => True

              Characterization of the conventional range restrictions on every Lie-type constructor.

              @[instance_reducible]
              Equations
              • One or more equations did not get rendered due to their size.

              Representatives omitted in favor of the alternating or Lie-type name under which the classification list keeps the same group. After InStandardRange, these are the remaining small isomorphism coincidences.

              Equations
              Instances For
                @[simp]
                theorem TauCeti.LieTypeIndex.isDuplicateRepresentative_iff (d : LieTypeIndex) :
                d.IsDuplicateRepresentative ↔ match d with | A rank q => rank = 1 ∧ (q.card = 4 ∨ q.card = 5 ∨ q.card = 9) ∨ rank = 2 ∧ q.card = 2 ∨ rank = 3 ∧ q.card = 2 | B rank q => rank = 2 ∧ q.card = 3 | x => False

                Characterization of the deliberately omitted duplicate representatives.

                @[instance_reducible]
                Equations
                • One or more equations did not get rendered due to their size.

                A preferred Lie-type representative in the CFSG list. This is not a finiteness or simplicity predicate.

                Equations
                Instances For
                  @[simp]

                  A Lie-type index is valid exactly when it is in range and is the preferred representative.

                  An in-range ²Aₙ(q) index has rank at least two: the reversal of a one-node diagram is trivial, and ²A₁(q) is not a name on the classification list.

                  An in-range ²Dₙ(q) index has rank at least four, the range in which the Dₙ diagram has its fork.

                  Whether the Steinberg map for an index is an odd power of a half-Frobenius. This selects the three Suzuki--Ree families and the Tits group, not the exceptional Dynkin types in general.

                  Equations
                  Instances For
                    @[simp]

                    Characterization of the families whose Steinberg map uses a half-Frobenius.

                    @[instance_reducible]
                    Equations
                    • One or more equations did not get rendered due to their size.

                    Whether a Lie-type index belongs to one of the two type-A families, A_r(q) or ²A_r(q).

                    This is a constructor selector, not a mathematical property of a group. The small-field and duplicate-representative restrictions come from the enclosing TauCeti.ValidLieTypeIndex; no finiteness or simplicity is asserted here.

                    Equations
                    Instances For
                      @[simp]
                      theorem TauCeti.LieTypeIndex.isTypeA_iff (d : LieTypeIndex) :
                      d.IsTypeA ↔ match d with | A rank q => True | twistedA rank q => True | x => False

                      Characterization of the two type-A constructors.

                      @[instance_reducible]
                      Equations
                      • One or more equations did not get rendered due to their size.

                      Neither type-A family uses a half-Frobenius, so both carry a diagram automorphism.

                      @[reducible, inline]

                      Whether a Lie-type index belongs to the untwisted family C_r(q).

                      This is a constructor selector, not a mathematical property of a group. The rank, field, and preferred-representative restrictions come from the enclosing TauCeti.ValidLieTypeIndex.

                      Equations
                      Instances For
                        @[instance_reducible]
                        Equations
                        • One or more equations did not get rendered due to their size.

                        The untwisted type-C family does not use a half-Frobenius.

                        Whether a Lie-type index names the untwisted exceptional family E₆(q).

                        This is a constructor selector, not a mathematical property of a group. It is false on the graph-twisted family ²E₆(q), which shares the E₆ diagram but takes a different Steinberg map, and it asserts no finiteness or simplicity.

                        Equations
                        Instances For
                          @[simp]
                          theorem TauCeti.LieTypeIndex.isTypeE6_iff (d : LieTypeIndex) :
                          d.IsTypeE6 ↔ match d with | E6 q => True | x => False

                          Characterization of the untwisted type-E₆ constructor.

                          @[instance_reducible]
                          Equations
                          • One or more equations did not get rendered due to their size.

                          The untwisted family E₆(q) does not use a half-Frobenius, so it carries a diagram automorphism.

                          Every E₆(q) index is valid. The E₆ row of InStandardRange is unrestricted, and no E₆ parameter is a duplicate representative, so the family contributes one classification entry for each prime power.

                          Whether a Lie-type index names the graph-twisted exceptional family ²E₆(q).

                          This is a constructor selector, not a mathematical property of a group. It is false on the untwisted family E₆(q), which shares the E₆ diagram but takes the plain Frobenius as its Steinberg map, and it asserts no finiteness or simplicity.

                          Equations
                          Instances For
                            @[simp]

                            Characterization of the graph-twisted type-E₆ constructor.

                            @[instance_reducible]
                            Equations
                            • One or more equations did not get rendered due to their size.

                            The family ²E₆(q) does not use a half-Frobenius: it twists the Frobenius by a diagram automorphism instead.

                            Every ²E₆(q) index is valid. The ²E₆ row of InStandardRange is unrestricted, and no ²E₆ parameter is a duplicate representative, so the family contributes one classification entry for each prime power.

                            Whether a Lie-type index names the Suzuki family ²B₂(2^(2m+1)).

                            This is a constructor selector, not a mathematical property of a group. The exclusion of ²B₂(2) comes from the enclosing TauCeti.ValidLieTypeIndex; no finiteness or simplicity is asserted here.

                            Equations
                            Instances For
                              @[simp]
                              theorem TauCeti.LieTypeIndex.isSuzuki_iff (d : LieTypeIndex) :
                              d.IsSuzuki ↔ match d with | suzuki m => True | x => False

                              Characterization of the Suzuki constructor.

                              @[instance_reducible]
                              Equations
                              • One or more equations did not get rendered due to their size.

                              The Suzuki family uses a half-Frobenius, so it carries no diagram automorphism.

                              Whether a Lie-type index names the untwisted family Dₙ(q).

                              This is a constructor selector, not a mathematical property of a group. It is false on the two twisted families ²Dₙ(q) and ³D₄(q), which share the Dₙ diagram but take different Steinberg maps, and it asserts no finiteness or simplicity.

                              Equations
                              Instances For
                                @[simp]
                                theorem TauCeti.LieTypeIndex.isTypeD_iff (d : LieTypeIndex) :
                                d.IsTypeD ↔ match d with | D rank q => True | x => False

                                Characterization of the untwisted type-D constructor.

                                @[instance_reducible]
                                Equations
                                • One or more equations did not get rendered due to their size.

                                Whether a Lie-type index names the graph-twisted family ²Dₙ(q).

                                This is a constructor selector, not a mathematical property of a group. Following the Gorenstein--Lyons--Solomon convention recorded above, the parameter q is the small field, the matrix realization being over 𝔽_(q²).

                                Equations
                                Instances For
                                  @[simp]

                                  Characterization of the graph-twisted type-D constructor.

                                  @[instance_reducible]
                                  Equations
                                  • One or more equations did not get rendered due to their size.

                                  Whether a Lie-type index names the triality-twisted family ³D₄(q).

                                  This is a constructor selector, not a mathematical property of a group. Its matrix realization is over 𝔽_(q³), q again being the small field parameter.

                                  Equations
                                  Instances For
                                    @[simp]

                                    Characterization of the triality-twisted constructor.

                                    @[instance_reducible]
                                    Equations
                                    • One or more equations did not get rendered due to their size.

                                    Every ³D₄(q) index is valid. The triality row of InStandardRange is unrestricted, and no triality parameter is a duplicate representative, so the family contributes one classification entry for each prime power.

                                    The underlying untwisted Dynkin diagram. Twisted types map to the diagram from which they are constructed, so all later root indices use the Bourbaki numbering of TauCeti.DynkinType.

                                    This is exposed because it appears in the types of the numbered data attached to an index: for TauCeti.GraphTwistedIndex.diagramPerm on the ²Aₙ branch to be TauCeti.graphPermA n, the type Fin (twistedA n q).dynkinType.rank has to reduce to Fin n.

                                    Equations
                                    Instances For

                                      The Lie-type families whose underlying Dynkin diagram has unimodular Cartan matrix, namely E₈, F₄ and G₂.

                                      Both the untwisted families E₈(q), F₄(q), G₂(q) and the Ree families ²G₂(3^(2m+1)), ²F₄(2^(2m+1)) together with the Tits index are included: the predicate constrains the diagram and not the Steinberg map. The Suzuki family is the one Suzuki--Ree constructor left out, its diagram being B₂, whose Cartan matrix has determinant two.

                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem TauCeti.LieTypeIndex.hasUnimodularDiagram_iff (d : LieTypeIndex) :
                                        d.HasUnimodularDiagram ↔ match d with | E8 q => True | F4 q => True | G2 q => True | reeG2 m => True | reeF4 m => True | tits => True | x => False

                                        Characterization of the families with unimodular diagram.

                                        @[instance_reducible]
                                        Equations
                                        • One or more equations did not get rendered due to their size.

                                        An index has unimodular diagram exactly when its underlying Dynkin type is E₈, F₄ or G₂.

                                        The six families with unimodular diagram.

                                        The three untwisted families with unimodular diagram. Removing the Suzuki--Ree constructors from the previous list leaves E₈(q), F₄(q) and G₂(q).

                                        The Lie-type families whose underlying Dynkin diagram is of type Dₙ: the untwisted family Dₙ(q), the graph-twisted family ²Dₙ(q), and the triality-twisted family ³D₄(q).

                                        Like TauCeti.LieTypeIndex.HasUnimodularDiagram this constrains the diagram alone and says nothing about the Steinberg map, which is what makes it the right hypothesis for data depending only on the diagram. The three families differ in the diagram permutation their Steinberg map composes with, of order one, two and three respectively. They do not all share a carrier: triality has no linear realization on the spin module the other two are built on, so ³D₄(q) is built on the tripled carrier TauCeti.D4Tripled.groupScheme.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem TauCeti.LieTypeIndex.hasTypeDDiagram_iff (d : LieTypeIndex) :
                                          d.HasTypeDDiagram ↔ match d with | D rank q => True | twistedD rank q => True | trialityD4 q => True | x => False

                                          Characterization of the families on a type-D diagram.

                                          @[instance_reducible]
                                          Equations
                                          • One or more equations did not get rendered due to their size.

                                          An index has a type-D diagram exactly when its underlying Dynkin type is some Dₙ.

                                          The three families on a type-D diagram.

                                          No family on a type-D diagram uses a half-Frobenius, so each of the three carries a diagram permutation and an ordinary Steinberg map.

                                          A type-D diagram is not unimodular. Consequently the adjoint Geck carrier, whose weights span the whole character lattice exactly on the three types named by TauCeti.DynkinType.span_range_geckWeight_eq_top_iff, is not the simply connected form on these branches, and the type-D families need a carrier of their own.

                                          The untwisted family Dₙ(q) is built on a type-D diagram.

                                          The graph-twisted family ²Dₙ(q) is built on a type-D diagram.

                                          The triality-twisted family ³D₄(q) is built on a type-D diagram.

                                          The two families on the rank-two diagram B₂. They are the untwisted B₂(q) and the Suzuki family ²B₂(2^(2m+1)); the converse inclusions are dynkinType_B and dynkinType_suzuki. No rank-two C index appears: the C family starts at rank three in InStandardRange, so B₂(q) = C₂(q) is always named in the B family.

                                          The one untwisted family on the rank-two diagram B₂. Removing the Suzuki constructor, the one of the two families of exists_eq_of_dynkinType_eq_B_two using a half-Frobenius, leaves B₂(q).

                                          The characteristic attached to a Lie-type index is prime.

                                          The fact instance that equips ZMod d.characteristic with its field structure downstream.

                                          It is stated for a bare index rather than for a TauCeti.ValidLieTypeIndex, so that it also applies at an explicitly written constructor such as LieTypeIndex.A rank q: through Subtype.val ?d the validated form is not a matchable instance key.

                                          The Frobenius/classification parameter q. For ordinary and graph-twisted families this is the exponent in Frob_q, not the cardinality of the extension field used by a twisted matrix realization. For Suzuki--Ree families it is their field order p ^ (2 * m + 1).

                                          Equations
                                          Instances For
                                            @[simp]
                                            @[simp]

                                            The exponent writing the Frobenius parameter q as a power of the characteristic. It is the stored exponent of the prime power on the ordinary and graph-twisted branches, the odd number 2 * m + 1 on the Suzuki--Ree branches, whose field order is p ^ (2 * m + 1), and 1 on the Tits branch, whose field order is the characteristic 2 itself.

                                            This is not a second numeric parameter: fieldOrder_eq_characteristic_pow recovers fieldOrder from it, and it exists because the q-power Frobenius of a field of characteristic p is the fieldExponent-fold iterate of the p-power Frobenius.

                                            Equations
                                            Instances For

                                              The Frobenius parameter is the recorded power of the characteristic.

                                              The exponent writing the Frobenius parameter as a power of the characteristic is positive, so the Frobenius parameter is never 1.

                                              The Frobenius parameter is a positive power of a prime, hence at least two.

                                              The Frobenius parameter of a Lie-type index is positive, being a power of its prime characteristic. This is the form in which the parameter is read as the scaling factor of the root-datum Frobenius.

                                              The Frobenius parameter as a positive natural number, packaging one_lt_fieldOrder. This is the form taken by the later constructions that scale by q and need it to be positive.

                                              Equations
                                              Instances For
                                                @[reducible, inline]

                                                A Lie-type index satisfying its rank, field, and preferred-representative conditions. Later carrier-valued constructions take this subtype, so they need no branch for an invalid Dynkin rank or an excluded small group.

                                                Equations
                                                Instances For
                                                  @[reducible, inline]

                                                  A valid index whose Steinberg map is an odd power of a half-Frobenius: the three Suzuki--Ree families together with the Tits group.

                                                  Equations
                                                  Instances For
                                                    @[reducible, inline]

                                                    A valid index whose Steinberg map uses ordinary Frobenius, possibly composed with a diagram automorphism. The Suzuki--Ree and Tits branches are excluded.

                                                    Equations
                                                    Instances For
                                                      @[reducible, inline]

                                                      A valid index whose underlying Dynkin diagram has unimodular Cartan matrix: the six branches E₈(q), F₄(q), G₂(q), ²G₂(3^(2m+1)), ²F₄(2^(2m+1)) and ²F₄(2)'. These are the diagrams on which the Geck weights span the full character lattice (TauCeti.DynkinType.span_range_geckWeight_eq_top_iff), so this subtype is the domain of the lattice results that span buys.

                                                      Equations
                                                      Instances For
                                                        @[reducible, inline]

                                                        A validated index in one of the two type-A families A_r(q) and ²A_r(q).

                                                        The outer subtype is important: a raw type-A constructor with an excluded rank or field parameter is not a TypeALieIndex.

                                                        Equations
                                                        Instances For
                                                          @[reducible, inline]

                                                          A validated index in the untwisted type-C family C_r(q).

                                                          In particular, its rank is at least three and its characteristic is not two.

                                                          Equations
                                                          Instances For
                                                            @[reducible, inline]

                                                            A validated index in the untwisted exceptional family E₆(q).

                                                            Every E₆(q) is valid, by TauCeti.LieTypeIndex.valid_E6, so the outer subtype excludes nothing here; it is retained so that this family sits inside TauCeti.ValidLieTypeIndex, which the carrier-valued constructions take. The graph-twisted family ²E₆(q), which shares the diagram, is not of this subtype.

                                                            Equations
                                                            Instances For
                                                              @[reducible, inline]

                                                              A validated index in the graph-twisted exceptional family ²E₆(q).

                                                              Every ²E₆(q) is valid, by TauCeti.LieTypeIndex.valid_twistedE6, so the outer subtype excludes nothing here; it is retained so that this family sits inside TauCeti.ValidLieTypeIndex, which the carrier-valued constructions take. The untwisted family E₆(q), which shares the diagram, is not of this subtype: the two differ by the diagram automorphism their Steinberg maps compose with, and they are built on different carriers, since the E₆ diagram symmetry does not act on the 27-dimensional minuscule one.

                                                              Equations
                                                              Instances For
                                                                @[reducible, inline]

                                                                A validated index in the Suzuki family ²B₂(2^(2m+1)).

                                                                The outer subtype is important: ²B₂(2), the parameter m = 0, is excluded from the classification list. It is itself the Frobenius group of order twenty, whose derived subgroup is cyclic of order five and is its own centre, so the derived-subgroup recipe collapses to the trivial group rather than a simple one, and ²B₂(2) is not a SuzukiLieIndex. The Suzuki--Ree relatives ²G₂, ²F₄ and the Tits group are excluded too; they are the other three constructors of TauCeti.SuzukiReeIndex.

                                                                Equations
                                                                Instances For
                                                                  @[reducible, inline]

                                                                  A validated index on a type-Dₙ diagram: the untwisted Dₙ(q), the graph-twisted ²Dₙ(q), or the triality-twisted ³D₄(q).

                                                                  The three families are collected because they share their diagram, and with it everything read off the diagram, while the family enters through the diagram permutation. The untwisted and graph-twisted families also share their carrier, the spin carrier TauCeti.TypeDSpinCarrier; the triality-twisted family is built on the tripled carrier TauCeti.D4Tripled.groupScheme instead. Its rank is at least four, by TauCeti.TypeDDiagramLieIndex.four_le_rank.

                                                                  Equations
                                                                  Instances For
                                                                    @[reducible, inline]

                                                                    A validated index in the untwisted type-D family Dₙ(q).

                                                                    The outer subtype is important: D₂(q) and D₃(q) are not names on the classification list, their diagrams being A₁ × A₁ and A₃, so they are not indices of this subtype.

                                                                    Equations
                                                                    Instances For
                                                                      @[reducible, inline]

                                                                      A validated index in the graph-twisted type-D family ²Dₙ(q), whose Steinberg map twists by the exchange of the two fork nodes. Its rank is at least four, for the same reason as for the untwisted family.

                                                                      Equations
                                                                      Instances For
                                                                        @[reducible, inline]

                                                                        A validated index in the triality-twisted family ³D₄(q), whose Steinberg map twists by the order-three symmetry of the D₄ diagram. Every ³D₄(q) is valid, by TauCeti.LieTypeIndex.valid_trialityD4.

                                                                        Equations
                                                                        Instances For
                                                                          @[reducible, inline]

                                                                          A validated index built on the rank-two diagram B₂: the untwisted family B₂(q) and the Suzuki family ²B₂(2^(2m+1)).

                                                                          The condition constrains the diagram and not the Steinberg map, so it holds both of the untwisted family, whose Steinberg map is the q-power Frobenius, and of the Suzuki family, whose Steinberg map is an odd power of a half-Frobenius. No rank-two C index appears: the C family starts at rank three in InStandardRange, so B₂(q) = C₂(q) is always named in the B family.

                                                                          This is diagram-level indexing data only; the carrier both branches share is attached in TauCeti/GroupTheory/SpecificGroups/CFSG/TypeB/Two/Basic.lean. The outer subtype is important: B₂(2), B₂(3) and ²B₂(2) are excluded from the classification list and are not indices of this subtype; those exclusions are the small isomorphisms of Gorenstein--Lyons--Solomon, Number 1, §2.2.

                                                                          Equations
                                                                          Instances For
                                                                            @[reducible, inline]

                                                                            A validated index in the untwisted rank-two family B₂(q). The Suzuki family, which shares the diagram, is excluded by the outer predicate.

                                                                            Equations
                                                                            Instances For
                                                                              @[reducible, inline]
                                                                              abbrev TauCeti.TypeALieIndex.ofA (rank : ℕ) (q : PrimePower) (hvalid : (LieTypeIndex.A rank q).Valid) :

                                                                              Introduce a valid untwisted type-A index.

                                                                              Equations
                                                                              Instances For
                                                                                @[reducible, inline]

                                                                                Introduce a valid graph-twisted type-A index.

                                                                                Equations
                                                                                Instances For
                                                                                  theorem TauCeti.TypeALieIndex.exists_eq_ofA_or_exists_eq_ofTwistedA (d : TypeALieIndex) :
                                                                                  (∃ (rank : ℕ) (q : PrimePower) (hvalid : (LieTypeIndex.A rank q).Valid), d = ofA rank q hvalid) ∨ ∃ (rank : ℕ) (q : PrimePower) (hvalid : (LieTypeIndex.twistedA rank q).Valid), d = ofTwistedA rank q hvalid

                                                                                  Every type-A index is one of the two introduction forms. This is the eliminator matching ofA and ofTwistedA, so a consumer never repeats the case split over the other constructors.

                                                                                  @[reducible, inline]

                                                                                  The total Dynkin-diagram map, restricted along the valid-index coercion.

                                                                                  Equations
                                                                                  Instances For

                                                                                    Every valid Lie-type index names a valid Dynkin type.

                                                                                    @[reducible, inline]

                                                                                    The rank of the underlying untwisted Dynkin diagram. This is derived from dynkinType, not tabulated independently.

                                                                                    Equations
                                                                                    Instances For
                                                                                      @[reducible, inline]

                                                                                      The total characteristic map, restricted along the valid-index coercion.

                                                                                      Equations
                                                                                      Instances For

                                                                                        The characteristic attached to a valid Lie-type index is prime.

                                                                                        @[reducible, inline]

                                                                                        The total Frobenius-parameter map, restricted along the valid-index coercion.

                                                                                        Equations
                                                                                        Instances For
                                                                                          @[reducible, inline]

                                                                                          The total field-exponent map, restricted along the valid-index coercion.

                                                                                          Equations
                                                                                          Instances For

                                                                                            The Frobenius parameter of a valid index is the recorded power of its characteristic.

                                                                                            The field exponent of a valid index is positive.

                                                                                            The Frobenius parameter of a valid index is positive.

                                                                                            @[reducible, inline]
                                                                                            abbrev TauCeti.TypeCLieIndex.of (rank : ℕ) (q : PrimePower) (hvalid : (LieTypeIndex.C rank q).Valid) :

                                                                                            Introduce a valid type-C index.

                                                                                            Equations
                                                                                            Instances For
                                                                                              theorem TauCeti.TypeCLieIndex.exists_eq_of (d : TypeCLieIndex) :
                                                                                              ∃ (rank : ℕ) (q : PrimePower) (hvalid : (LieTypeIndex.C rank q).Valid), d = of rank q hvalid

                                                                                              Every type-C index is an introduction form of rank q hvalid.

                                                                                              The Cartan matrix of the diagram a validated type-C index names, entry by entry: it is the type-C Cartan matrix at the index's rank. This is the projection of the introduction form TauCeti.TypeCLieIndex.of through TauCeti.DynkinType.cartanMatrix_C, stated on entries rather than on matrices because the rank occurs in the index types of the two nodes.

                                                                                              The rank of a validated type-C index is at least three.

                                                                                              A validated type-C index has characteristic different from two.

                                                                                              The families on the B₂ diagram #

                                                                                              This section follows ValidLieTypeIndex rather than sitting beside TypeALieIndex, because rank_eq_two reads the numbered data TauCeti.ValidLieTypeIndex.rank defined just above.

                                                                                              @[simp]

                                                                                              An index on the B₂ diagram names the Dynkin type B 2.

                                                                                              @[simp]

                                                                                              An index on the B₂ diagram has rank two, that being the rank of B₂.

                                                                                              @[reducible, inline]

                                                                                              Introduce the untwisted branch B₂(q).

                                                                                              Equations
                                                                                              Instances For
                                                                                                @[reducible, inline]

                                                                                                Introduce the Suzuki branch ²B₂(2^(2m+1)).

                                                                                                Equations
                                                                                                Instances For
                                                                                                  theorem TauCeti.RankTwoBLieIndex.exists_eq_ofB_or_exists_eq_ofSuzuki (d : RankTwoBLieIndex) :
                                                                                                  (∃ (q : PrimePower) (hvalid : (LieTypeIndex.B 2 q).Valid), d = ofB q hvalid) ∨ ∃ (m : ℕ) (hvalid : (LieTypeIndex.suzuki m).Valid), d = ofSuzuki m hvalid

                                                                                                  Every index on the B₂ diagram is one of the two introduction forms. This is the eliminator matching ofB and ofSuzuki, so a consumer never repeats the case split over the other constructors.

                                                                                                  The two branches are disjoint, so the eliminator above splits every index on the B₂ diagram into exactly one of them.

                                                                                                  @[reducible, inline]

                                                                                                  Introduce a valid untwisted index B₂(q). Validity forces 4 ≤ q.card, by four_le_fieldOrder below.

                                                                                                  Equations
                                                                                                  Instances For
                                                                                                    theorem TauCeti.TypeB2LieIndex.exists_eq_of (d : TypeB2LieIndex) :
                                                                                                    ∃ (q : PrimePower) (hvalid : (LieTypeIndex.B 2 q).Valid), d = of q hvalid

                                                                                                    Every untwisted rank-two type-B index is of the introduction form.

                                                                                                    The field order of an untwisted rank-two type-B index is at least four. The two smaller prime powers are excluded from the classification list as duplicate representatives.

                                                                                                    @[reducible, inline]

                                                                                                    Introduce a valid Suzuki index ²B₂(2^(2m+1)). Validity forces 1 ≤ m.

                                                                                                    Equations
                                                                                                    Instances For
                                                                                                      theorem TauCeti.SuzukiLieIndex.exists_eq_of (d : SuzukiLieIndex) :
                                                                                                      ∃ (m : ℕ) (hvalid : (LieTypeIndex.suzuki m).Valid), d = of m hvalid

                                                                                                      Every Suzuki index is of the introduction form. This is the eliminator matching of, so a consumer never repeats the case split over the other constructors.

                                                                                                      @[simp]

                                                                                                      The Suzuki family is built on the rank-two diagram B₂.

                                                                                                      @[simp]

                                                                                                      The Suzuki family has rank two, that being the rank of B₂.

                                                                                                      @[simp]

                                                                                                      The Suzuki family lives in characteristic two.

                                                                                                      @[reducible, inline]

                                                                                                      A Suzuki index is a Suzuki--Ree index: its Steinberg map is an odd power of a half-Frobenius.

                                                                                                      Equations
                                                                                                      Instances For
                                                                                                        @[reducible, inline]

                                                                                                        A Suzuki index is an index on the rank-two diagram B₂. This is the reading through which the Suzuki family reaches the carrier data that TauCeti/GroupTheory/SpecificGroups/CFSG/TypeB/Two/Basic.lean attaches to that diagram and that it shares with the untwisted family B₂(q), the two differing only in the endomorphism taken of it.

                                                                                                        Equations
                                                                                                        Instances For

                                                                                                          The untwisted family E₆(q) #

                                                                                                          This section, like the Suzuki one above, follows ValidLieTypeIndex because rank_eq_six reads the numbered data TauCeti.ValidLieTypeIndex.rank defined there.

                                                                                                          @[reducible, inline]

                                                                                                          Introduce the index E₆(q). No validity hypothesis is taken: every E₆ parameter is valid by TauCeti.LieTypeIndex.valid_E6.

                                                                                                          Equations
                                                                                                          Instances For

                                                                                                            Every untwisted type-E₆ index is of the introduction form. This is the eliminator matching of, so a consumer never repeats the case split over the other constructors.

                                                                                                            @[simp]

                                                                                                            The untwisted family E₆(q) is built on the diagram E₆.

                                                                                                            @[simp]

                                                                                                            The untwisted family E₆(q) has rank six, that being the rank of E₆.

                                                                                                            The graph-twisted family ²E₆(q) #

                                                                                                            @[reducible, inline]

                                                                                                            Introduce the index ²E₆(q). No validity hypothesis is taken: every ²E₆ parameter is valid by TauCeti.LieTypeIndex.valid_twistedE6.

                                                                                                            Equations
                                                                                                            Instances For

                                                                                                              Every graph-twisted type-E₆ index is of the introduction form. This is the eliminator matching of, so a consumer never repeats the case split over the other constructors.

                                                                                                              @[simp]

                                                                                                              The graph-twisted family ²E₆(q) is built on the diagram E₆.

                                                                                                              @[simp]

                                                                                                              The graph-twisted family ²E₆(q) has rank six, that being the rank of E₆.

                                                                                                              The families on a type-D diagram #

                                                                                                              The untwisted Dₙ(q), the graph-twisted ²Dₙ(q) and the triality-twisted ³D₄(q) are the three classification-list families built on a Dₙ diagram. This section, like the two above, follows ValidLieTypeIndex because the rank statements read the numbered data TauCeti.ValidLieTypeIndex.rank defined there.

                                                                                                              The underlying Dynkin type of an index on a type-D diagram is Dₙ at the index's own rank.

                                                                                                              It is deliberately not a simp lemma: the right-hand side mentions the rank, which is itself read off the Dynkin type, so the rewrite would reintroduce its own left-hand side.

                                                                                                              The Cartan matrix of the diagram a validated index on a type-D diagram names, entry by entry: it is the type-D Cartan matrix at the index's rank. Like TauCeti.TypeCLieIndex.dynkinType_cartanMatrix_apply it is stated on entries rather than on matrices, because the rank occurs in the index types of the two nodes, so the Dynkin-type equation TauCeti.TypeDDiagramLieIndex.dynkinType_eq cannot be rewritten with directly.

                                                                                                              The rank of a validated index on a type-D diagram is at least four. This is the range on which Dₙ is a valid Dynkin type, D₂ being A₁ × A₁ and D₃ being A₃ relabelled, and it is the hypothesis the type-D spin carrier TauCeti.TypeDSpinCarrier.groupScheme takes.

                                                                                                              @[reducible, inline]
                                                                                                              abbrev TauCeti.TypeDLieIndex.of (rank : ℕ) (q : PrimePower) (hvalid : (LieTypeIndex.D rank q).Valid) :

                                                                                                              Introduce a valid untwisted type-D index.

                                                                                                              Equations
                                                                                                              Instances For
                                                                                                                theorem TauCeti.TypeDLieIndex.exists_eq_of (d : TypeDLieIndex) :
                                                                                                                ∃ (rank : ℕ) (q : PrimePower) (hvalid : (LieTypeIndex.D rank q).Valid), d = of rank q hvalid

                                                                                                                Every untwisted type-D index is an introduction form of rank q hvalid. This is the eliminator matching of, so a consumer never repeats the case split over the other constructors.

                                                                                                                @[reducible, inline]

                                                                                                                The untwisted family Dₙ(q), regarded as a family on a type-D diagram.

                                                                                                                Equations
                                                                                                                Instances For
                                                                                                                  @[reducible, inline]

                                                                                                                  Introduce a valid graph-twisted type-D index.

                                                                                                                  Equations
                                                                                                                  Instances For
                                                                                                                    theorem TauCeti.TypeTwistedDLieIndex.exists_eq_of (d : TypeTwistedDLieIndex) :
                                                                                                                    ∃ (rank : ℕ) (q : PrimePower) (hvalid : (LieTypeIndex.twistedD rank q).Valid), d = of rank q hvalid

                                                                                                                    Every graph-twisted type-D index is an introduction form of rank q hvalid.

                                                                                                                    @[reducible, inline]

                                                                                                                    The graph-twisted family ²Dₙ(q), regarded as a family on a type-D diagram.

                                                                                                                    Equations
                                                                                                                    Instances For
                                                                                                                      @[reducible, inline]

                                                                                                                      Introduce the index ³D₄(q). No validity hypothesis is taken: every triality parameter is valid by TauCeti.LieTypeIndex.valid_trialityD4.

                                                                                                                      Equations
                                                                                                                      Instances For

                                                                                                                        Every triality-twisted index is of the introduction form.

                                                                                                                        @[reducible, inline]

                                                                                                                        The triality-twisted family ³D₄(q), regarded as a family on a type-D diagram.

                                                                                                                        Equations
                                                                                                                        Instances For
                                                                                                                          @[simp]

                                                                                                                          The triality-twisted family ³D₄(q) is built on the diagram D₄.

                                                                                                                          @[simp]

                                                                                                                          The triality-twisted family ³D₄(q) has rank four, that being the rank of D₄.

                                                                                                                          @[reducible, inline]

                                                                                                                          The index E₈(q).

                                                                                                                          Equations
                                                                                                                          Instances For
                                                                                                                            @[reducible, inline]

                                                                                                                            The index F₄(q).

                                                                                                                            Equations
                                                                                                                            Instances For
                                                                                                                              @[reducible, inline]

                                                                                                                              The index G₂(q), for q at least three: G₂(2) is excluded from the classification list, its recipe producing a group already named ²A₂(3).

                                                                                                                              Equations
                                                                                                                              Instances For
                                                                                                                                @[reducible, inline]

                                                                                                                                The Ree index ²G₂(3^(2m+1)), for m at least one: ²G₂(3) is excluded from the classification list, its recipe producing a group already named A₁(8).

                                                                                                                                Equations
                                                                                                                                Instances For
                                                                                                                                  @[reducible, inline]

                                                                                                                                  The Ree index ²F₄(2^(2m+1)), for m at least one: at m = 0 the recipe returns the Tits group ²F₄(2)', which the classification list carries under the separate name tits.

                                                                                                                                  Equations
                                                                                                                                  Instances For
                                                                                                                                    @[reducible, inline]

                                                                                                                                    The underlying untwisted Dynkin diagram of an index with unimodular diagram.

                                                                                                                                    Equations
                                                                                                                                    Instances For

                                                                                                                                      That diagram is a valid Dynkin type, so the pinned Geck carrier is available for it.

                                                                                                                                      The underlying Dynkin type of an index with unimodular diagram is one of the three unimodular types.

                                                                                                                                      Executable checks for the range conventions #

                                                                                                                                      Sporadic names and the full classification index #

                                                                                                                                      The twenty-six sporadic group names. Fi24Prime denotes Fi₂₄', and B and M denote the Baby Monster and Monster.

                                                                                                                                      Instances For
                                                                                                                                        @[instance_reducible]
                                                                                                                                        Equations
                                                                                                                                        @[instance_reducible]

                                                                                                                                        The finite enumeration of the twenty-six sporadic group names.

                                                                                                                                        Equations
                                                                                                                                        • One or more equations did not get rendered due to their size.

                                                                                                                                        The sporadic-name enumeration has exactly twenty-six entries.

                                                                                                                                        Indices for the preferred representatives on the CFSG list. The proof fields restrict the cyclic and alternating parameters without asserting that any candidate group is finite or simple.

                                                                                                                                        Instances For
                                                                                                                                          def TauCeti.instDecidableEqCFSGIndex.decEq (x✝ x✝¹ : CFSGIndex) :
                                                                                                                                          Decidable (x✝ = x✝¹)
                                                                                                                                          Equations
                                                                                                                                          Instances For