Documentation

Mathlib.LinearAlgebra.RootSystem.GeckConstruction.Basic

Geck's construction of a Lie algebra associated to a root system #

This file contains an implementation of Geck's construction of a semisimple Lie algebra from a reduced crystallographic root system. It follows Geck quite closely.

Main definitions: #

Alternative approaches #

There are at least three ways to construct a Lie algebra from a root system:

  1. As a quotient of a free Lie algebra, using the Serre relations
  2. Directly defining the Lie bracket on $H ⊕ K^∣Φ|$
  3. The Geck construction

We comment on these as follows:

  1. This construction takes just a matrix as input. It yields a semisimple Lie algebra iff the matrix is a Cartan matrix but it is quite a lot of work to prove this. On the other hand, it also allows construction of Kac-Moody Lie algebras. It has been implemented as Matrix.ToLieAlgebra but as of May 2025, almost nothing has been proved about it in Mathlib.
  2. This construction takes a root system with base as input, together with sufficient additional data to determine a collection of extraspecial pairs of roots. The additional data for the extraspecial pairs is required to pin down certain signs when defining the Lie bracket. (These signs can be interpreted as a set-theoretic splitting of Tits's extension of the Weyl group by an elementary 2-group of order $2^l$ where $l$ is the rank.)
  3. This construction takes a root system with base as input and is implemented here.

There seems to be no known construction of a Lie algebra from a root system without first choosing a base: https://mathoverflow.net/questions/495434/

def RootPairing.GeckConstruction.h {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} (i : b.support) :
Matrix (b.support ι) (b.support ι) R

Part of an sl₂ triple used in Geck's construction of a Lie algebra from a root system.

Equations
    Instances For
      theorem RootPairing.GeckConstruction.h_def {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [DecidableEq ι] (i : b.support) :
      h i = Matrix.fromBlocks 0 0 0 (Matrix.diagonal fun (x : ι) => (P.pairingIn x i))
      theorem RootPairing.GeckConstruction.h_eq_diagonal {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [DecidableEq ι] (i : b.support) :
      h i = Matrix.diagonal (Sum.elim 0 fun (x : ι) => (P.pairingIn x i))
      @[simp]
      theorem RootPairing.GeckConstruction.diagonal_elim_mem_span_h_iff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [DecidableEq ι] {d : ιR} :
      Matrix.diagonal (Sum.elim 0 d) Submodule.span R (Set.range h) d Submodule.span R (Set.range fun (i : b.support) (j : ι) => (P.pairingIn j i))
      theorem RootPairing.GeckConstruction.apply_sum_inl_eq_zero_of_mem_span_h {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} (i : b.support) (j : b.support ι) {x : Matrix (b.support ι) (b.support ι) R} (hx : x Submodule.span R (Set.range h)) :
      x j (Sum.inl i) = 0
      theorem RootPairing.GeckConstruction.lie_h_h {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Fintype ι] (i j : b.support) :
      h i, h j = 0
      def RootPairing.GeckConstruction.e {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] (i : b.support) :
      Matrix (b.support ι) (b.support ι) R

      Part of an sl₂ triple used in Geck's construction of a Lie algebra from a root system.

      Equations
        Instances For
          def RootPairing.GeckConstruction.f {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] (i : b.support) :
          Matrix (b.support ι) (b.support ι) R

          Part of an sl₂ triple used in Geck's construction of a Lie algebra from a root system.

          Equations
            Instances For
              def RootPairing.GeckConstruction.ω {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (b : P.Base) :
              Matrix (b.support ι) (b.support ι) R

              An involutive matrix which can transfer results between RootPairing.GeckConstruction.e and RootPairing.GeckConstruction.f.

              Equations
                Instances For
                  def RootPairing.GeckConstruction.lieAlgebra {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] (b : P.Base) [Finite ι] [IsDomain R] [CharZero R] [Fintype ι] [DecidableEq ι] :
                  LieSubalgebra R (Matrix (b.support ι) (b.support ι) R)

                  Geck's construction of the Lie algebra associated to a root system with distinguished base.

                  Note that it is convenient to include range h in the Lie span, to make it elementary that it contains RootPairing.GeckConstruction.cartanSubalgebra, and not depend on RootPairing.GeckConstruction.lie_e_f_same.

                  Equations
                    Instances For
                      def RootPairing.GeckConstruction.cartanSubalgebra {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] (b : P.Base) [Fintype ι] [DecidableEq ι] :
                      LieSubalgebra R (Matrix (b.support ι) (b.support ι) R)

                      A distinguished subalgebra corresponding to a Cartan subalgebra of the Geck construction.

                      See also RootPairing.GeckConstruction.cartanSubalgebra'.

                      Equations
                        Instances For
                          def RootPairing.GeckConstruction.cartanSubalgebra' {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] (b : P.Base) [Finite ι] [IsDomain R] [CharZero R] [Fintype ι] [DecidableEq ι] :

                          A distinguished Cartan subalgebra of the Geck construction.

                          Equations
                            Instances For
                              @[simp]
                              theorem RootPairing.GeckConstruction.h_mem_cartanSubalgebra {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Fintype ι] [DecidableEq ι] (i : b.support) :
                              @[simp]
                              theorem RootPairing.GeckConstruction.h_mem_cartanSubalgebra' {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [Fintype ι] [DecidableEq ι] (i : b.support) (hi : h i lieAlgebra b) :
                              theorem RootPairing.GeckConstruction.h_mem_lieAlgebra {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [Fintype ι] [DecidableEq ι] (i : b.support) :
                              theorem RootPairing.GeckConstruction.e_mem_lieAlgebra {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [Fintype ι] [DecidableEq ι] (i : b.support) :
                              theorem RootPairing.GeckConstruction.f_mem_lieAlgebra {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [Fintype ι] [DecidableEq ι] (i : b.support) :
                              def RootPairing.GeckConstruction.h' {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [Fintype ι] [DecidableEq ι] (i : b.support) :

                              The element h i, as a term of the Cartan subalgebra cartanSubalgebra' b.

                              Equations
                                Instances For
                                  @[simp]
                                  theorem RootPairing.GeckConstruction.span_range_h'_eq_top {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] (b : P.Base) [Finite ι] [IsDomain R] [CharZero R] [Fintype ι] [DecidableEq ι] :
                                  @[simp]
                                  theorem RootPairing.GeckConstruction.ω_mul_ω {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} {b : P.Base} [DecidableEq ι] [Fintype ι] :
                                  ω b * ω b = 1
                                  theorem RootPairing.GeckConstruction.ω_mul_h {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [CharZero R] [Fintype ι] (i : b.support) :
                                  ω b * h i = -h i * ω b
                                  theorem RootPairing.GeckConstruction.ω_mul_e {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [Fintype ι] (i : b.support) :
                                  ω b * e i = f i * ω b
                                  theorem RootPairing.GeckConstruction.ω_mul_f {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [Fintype ι] (i : b.support) :
                                  ω b * f i = e i * ω b
                                  theorem RootPairing.GeckConstruction.lie_e_f_mul_ω {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [Fintype ι] (i j : b.support) :
                                  e i, f j * ω b = -ω b * e j, f i
                                  @[reducible, inline]
                                  abbrev RootPairing.GeckConstruction.u {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} {b : P.Base} [DecidableEq ι] (i : b.support) :
                                  b.support ιR

                                  Geck's name for the "left" basis elements of b.support ⊕ ι.

                                  Equations
                                    Instances For
                                      @[reducible, inline]
                                      abbrev RootPairing.GeckConstruction.v {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (b : P.Base) [DecidableEq ι] (i : ι) :
                                      b.support ιR

                                      Geck's name for the "right" basis elements of b.support ⊕ ι.

                                      Equations
                                        Instances For
                                          theorem RootPairing.GeckConstruction.apply_inr_eq_zero_of_mem_span_range_u {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (b : P.Base) [DecidableEq ι] (j : ι) {x : b.support ιR} (hx : x Submodule.span R (Set.range u)) :
                                          x (Sum.inr j) = 0
                                          theorem RootPairing.GeckConstruction.lie_e_lie_f_apply {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [DecidableEq ι] [Fintype ι] (i j : b.support) :
                                          theorem RootPairing.GeckConstruction.e_lie_u {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [DecidableEq ι] [Fintype ι] (i j : b.support) :
                                          e i, u j = |b.cartanMatrix i j| v b i
                                          theorem RootPairing.GeckConstruction.e_lie_v_ne {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [DecidableEq ι] [Fintype ι] {i j : ι} {k : b.support} (h : P.root j = P.root k + P.root i) :
                                          e k, v b i = ((chainBotCoeff (↑k) i) + 1) v b j
                                          theorem RootPairing.GeckConstruction.f_lie_v_same {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [DecidableEq ι] [Fintype ι] (i : b.support) :
                                          f i, v b i = u i
                                          theorem RootPairing.GeckConstruction.f_lie_v_ne {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [DecidableEq ι] [Fintype ι] {i j : ι} {k : b.support} (h : P.root i = P.root j + P.root k) :
                                          f k, v b i = ((chainTopCoeff (↑k) i) + 1) v b j
                                          def RootPairing.GeckConstruction.ωConj {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (b : P.Base) [DecidableEq ι] [Fintype ι] :
                                          Matrix (b.support ι) (b.support ι) R ≃ₗ⁅R Matrix (b.support ι) (b.support ι) R

                                          The conjugation x ↦ ωxω as an equivalence of Lie algebras.

                                          Equations
                                            Instances For
                                              @[simp]
                                              theorem RootPairing.GeckConstruction.ωConj_toFun {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (b : P.Base) [DecidableEq ι] [Fintype ι] (x : Matrix (b.support ι) (b.support ι) R) :
                                              (ωConj b) x = ω b * x * ω b
                                              @[simp]
                                              theorem RootPairing.GeckConstruction.ωConj_invFun {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} (b : P.Base) [DecidableEq ι] [Fintype ι] (x : Matrix (b.support ι) (b.support ι) R) :
                                              (ωConj b).invFun x = ω b * x * ω b
                                              theorem RootPairing.GeckConstruction.ωConj_mem_of_mem {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [DecidableEq ι] [Fintype ι] {x : Matrix (b.support ι) (b.support ι) R} (hx : x lieAlgebra b) :
                                              def RootPairing.GeckConstruction.ωConjLieSubmodule {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [DecidableEq ι] [Fintype ι] :
                                              LieSubmodule R (↥(lieAlgebra b)) (b.support ιR)LieSubmodule R (↥(lieAlgebra b)) (b.support ιR)

                                              The equivalence x ↦ ωxω as an operation on Lie submodules of the Geck construction.

                                              Equations
                                                Instances For
                                                  @[simp]
                                                  theorem RootPairing.GeckConstruction.mem_ωConjLieSubmodule_iff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [DecidableEq ι] [Fintype ι] (N✝ : LieSubmodule R (↥(lieAlgebra b)) (b.support ιR)) {x : b.support ιR} :
                                                  @[simp]
                                                  theorem RootPairing.GeckConstruction.ωConjLieSubmodule_eq_top_iff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {b : P.Base} [Finite ι] [IsDomain R] [CharZero R] [DecidableEq ι] [Fintype ι] (N✝ : LieSubmodule R (↥(lieAlgebra b)) (b.support ιR)) :