Documentation

Mathlib.GroupTheory.SpecificGroups.Coxeter

Coxeter Systems #

This file defines Coxeter systems and Coxeter groups.

A Coxeter system is a pair (W, S) where W is a group generated by a set of reflections (involutions) S = {s₁,s₂,...,sₙ}, subject to relations determined by a Coxeter matrix M = (mᵢⱼ). The Coxeter matrix is a symmetric matrix with entries mᵢⱼ representing the order of the product sᵢsⱼ for i ≠ j and mᵢᵢ = 1.

When (W, S) is a Coxeter system, one also says, by abuse of language, that W is a Coxeter group. A Coxeter group W is determined by the presentation W = ⟨s₁,s₂,...,sₙ | ∀ i j, (sᵢsⱼ)^mᵢⱼ = 1⟩, where 1 is the identity element of W.

The finite Coxeter groups are classified (TODO) as the four infinite families:

And the exceptional systems:

Implementation details #

In this file a Coxeter system, designated as CoxeterSystem M W, is implemented as a structure which effectively records the isomorphism between a group W and the corresponding group presentation derived from a Coxeter matrix M. From another perspective, it serves as a set of generators for W, tailored to the underlying type of M, while ensuring compliance with the relations specified by the Coxeter matrix M.

A type class IsCoxeterGroup is introduced, for groups that are isomorphic to a group presentation corresponding to a Coxeter matrix which is registered in a Coxeter system.

Main definitions #

References #

TODO #

Tags #

coxeter system, coxeter group

structure Matrix.IsCoxeter {B : Type u_1} (M : Matrix B B ) :

A matrix IsCoxeter if it is a symmetric matrix with diagonal entries equal to one and off-diagonal entries distinct from one.

  • symmetric : Matrix.IsSymm M
  • diagonal : ∀ (b : B), M b b = 1
  • off_diagonal : ∀ (b₁ b₂ : B), b₁ b₂M b₁ b₂ 1
Instances For
    def CoxeterGroup.Relations.ofMatrix {B : Type u_1} (M : Matrix B B ) :
    B × BFreeGroup B

    The relations corresponding to a Coxeter matrix.

    Equations
    Instances For

      The set of relations corresponding to a Coxeter matrix.

      Equations
      Instances For
        def Matrix.CoxeterGroup {B : Type u_1} (M : Matrix B B ) :
        Type u_1

        The group presentation corresponding to a Coxeter matrix.

        Equations
        Instances For
          def CoxeterGroup.of {B : Type u_1} (M : Matrix B B ) (b : B) :

          The canonical map from B to the Coxeter group with generators b : B. The term b is mapped to the equivalence class of the image of b in CoxeterGroup M.

          Equations
          Instances For
            @[simp]
            theorem CoxeterGroup.of_apply {B : Type u_1} (M : Matrix B B ) (b : B) :
            structure CoxeterSystem {B : Type u_1} (M : Matrix B B ) (W : Type u_2) [Group W] :
            Type (max u_1 u_2)

            A Coxeter system CoxeterSystem W is a structure recording the isomorphism between a group W and the group presentation corresponding to a Coxeter matrix. Equivalently, this can be seen as a list of generators of W parameterized by the underlying type of M, which satisfy the relations of the Coxeter matrix M.

            • ofMulEquiv :: (
            • )
            Instances For
              class IsCoxeterGroup (W : Type u) [Group W] :

              A group is a Coxeter group if it admits a Coxeter system for some Coxeter matrix M.

              Instances
                instance CoxeterSystem.funLike {B : Type u_2} {W : Type u_4} [Group W] {M : Matrix B B } :

                A Coxeter system for W with Coxeter matrix M indexed by B, is associated to a map B → W recording the images of the indices.

                Equations
                @[simp]
                theorem CoxeterSystem.mulEquiv_apply_coe {B : Type u_2} {W : Type u_4} [Group W] {M : Matrix B B } (cs : CoxeterSystem M W) (b : B) :
                cs.mulEquiv (cs b) = PresentedGroup.of b
                theorem CoxeterSystem.ext' {B : Type u_2} {W : Type u_4} [Group W] {M : Matrix B B } {cs₁ : CoxeterSystem M W} {cs₂ : CoxeterSystem M W} (H : cs₁ = cs₂) :
                cs₁ = cs₂

                The map sending a Coxeter system to its associated map B → W is injective.

                theorem CoxeterSystem.ext {B : Type u_2} {W : Type u_4} [Group W] {M : Matrix B B } {cs₁ : CoxeterSystem M W} {cs₂ : CoxeterSystem M W} (H : ∀ (b : B), cs₁ b = cs₂ b) :
                cs₁ = cs₂

                Extensionality rule for Coxeter systems.

                The canonical Coxeter system of the Coxeter group over X.

                Equations
                Instances For

                  Coxeter groups of isomorphic types are isomorphic.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem CoxeterSystem.equivCoxeterGroup_apply_of {B : Type u_2} {B' : Type u_3} (b : B) (M : Matrix B B ) (e : B B') :
                    theorem CoxeterSystem.equivCoxeterGroup_symm_apply_of {B : Type u_2} {B' : Type u_3} (b' : B') (M : Matrix B B ) (e : B B') :
                    @[simp]
                    theorem CoxeterSystem.reindex_mulEquiv {B : Type u_2} {B' : Type u_3} {W : Type u_4} [Group W] {M : Matrix B B } (cs : CoxeterSystem M W) (e : B B') :
                    def CoxeterSystem.reindex {B : Type u_2} {B' : Type u_3} {W : Type u_4} [Group W] {M : Matrix B B } (cs : CoxeterSystem M W) (e : B B') :

                    Reindex a Coxeter system through a bijection of the indexing sets.

                    Equations
                    Instances For
                      @[simp]
                      theorem CoxeterSystem.reindex_apply {B : Type u_2} {B' : Type u_3} {W : Type u_4} [Group W] {M : Matrix B B } (cs : CoxeterSystem M W) (e : B B') (b' : B') :
                      (CoxeterSystem.reindex cs e) b' = cs (e.symm b')
                      @[simp]
                      theorem CoxeterSystem.map_mulEquiv {B : Type u_2} {W : Type u_4} {H : Type u_5} [Group W] [Group H] {M : Matrix B B } (cs : CoxeterSystem M W) (e : W ≃* H) :
                      (CoxeterSystem.map cs e).mulEquiv = MulEquiv.trans (MulEquiv.symm e) cs.mulEquiv
                      def CoxeterSystem.map {B : Type u_2} {W : Type u_4} {H : Type u_5} [Group W] [Group H] {M : Matrix B B } (cs : CoxeterSystem M W) (e : W ≃* H) :

                      Pushing a Coxeter system through a group isomorphism.

                      Equations
                      Instances For
                        @[simp]
                        theorem CoxeterSystem.map_apply {B : Type u_2} {W : Type u_4} {H : Type u_5} [Group W] [Group H] {M : Matrix B B } (cs : CoxeterSystem M W) (e : W ≃* H) (b : B) :
                        (CoxeterSystem.map cs e) b = e (cs b)
                        @[inline, reducible]
                        abbrev CoxeterMatrix.Aₙ (n : ) :
                        Matrix (Fin n) (Fin n)

                        The Coxeter matrix of family A(n).

                        The corresponding Coxeter-Dynkin diagram is:

                            o --- o --- o ⬝ ⬝ ⬝ ⬝ o --- o
                        
                        Equations
                        Instances For
                          @[inline, reducible]
                          abbrev CoxeterMatrix.Bₙ (n : ) :
                          Matrix (Fin n) (Fin n)

                          The Coxeter matrix of family Bₙ.

                          The corresponding Coxeter-Dynkin diagram is:

                                 4
                              o --- o --- o ⬝ ⬝ ⬝ ⬝ o --- o
                          
                          Equations
                          Instances For
                            @[inline, reducible]
                            abbrev CoxeterMatrix.Dₙ (n : ) :
                            Matrix (Fin n) (Fin n)

                            The Coxeter matrix of family Dₙ.

                            The corresponding Coxeter-Dynkin diagram is:

                                o
                                 \
                                  o --- o ⬝ ⬝ ⬝ ⬝ o --- o
                                 /
                                o
                            
                            Equations
                            Instances For
                              @[inline, reducible]
                              abbrev CoxeterMatrix.I₂ₘ (m : ) :
                              Matrix (Fin 2) (Fin 2)

                              The Coxeter matrix of m-indexed family I₂(m).

                              The corresponding Coxeter-Dynkin diagram is:

                                   m + 2
                                  o --- o
                              
                              Equations
                              Instances For

                                The Coxeter matrix of system E₆.

                                The corresponding Coxeter-Dynkin diagram is:

                                                o
                                                |
                                    o --- o --- o --- o --- o
                                
                                Equations
                                • CoxeterMatrix.E₆ = Matrix.of ![![1, 2, 3, 2, 2, 2], ![2, 1, 2, 3, 2, 2], ![3, 2, 1, 3, 2, 2], ![2, 3, 3, 1, 3, 2], ![2, 2, 2, 3, 1, 3], ![2, 2, 2, 2, 3, 1]]
                                Instances For

                                  The Coxeter matrix of system E₇.

                                  The corresponding Coxeter-Dynkin diagram is:

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

                                    The Coxeter matrix of system E₈.

                                    The corresponding Coxeter-Dynkin diagram is:

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

                                      The Coxeter matrix of system F₄.

                                      The corresponding Coxeter-Dynkin diagram is:

                                                   4
                                          o --- o --- o --- o
                                      
                                      Equations
                                      Instances For

                                        The Coxeter matrix of system G₂.

                                        The corresponding Coxeter-Dynkin diagram is:

                                               6
                                            o --- o
                                        
                                        Equations
                                        Instances For

                                          The Coxeter matrix of system H₃.

                                          The corresponding Coxeter-Dynkin diagram is:

                                                 5
                                              o --- o --- o
                                          
                                          Equations
                                          Instances For

                                            The Coxeter matrix of system H₄.

                                            The corresponding Coxeter-Dynkin diagram is:

                                                   5
                                                o --- o --- o --- o
                                            
                                            Equations
                                            Instances For