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 #

The 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 : { x : ι // x b.support }) :
Matrix ({ x : ι // x b.support } ι) ({ x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x b.support }) (j : { x : ι // x b.support } ι) {x : Matrix ({ x : ι // x b.support } ι) ({ x : ι // x 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 : { x : ι // x 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 : { x : ι // x b.support }) :
    Matrix ({ x : ι // x b.support } ι) ({ x : ι // x b.support } ι) R

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

    Equations
    • One or more equations did not get rendered due to their size.
    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 : { x : ι // x b.support }) :
      Matrix ({ x : ι // x b.support } ι) ({ x : ι // x b.support } ι) R

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

      Equations
      • One or more equations did not get rendered due to their size.
      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 ({ x : ι // x b.support } ι) ({ x : ι // x 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 ({ x : ι // x b.support } ι) ({ x : ι // x 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
          • One or more equations did not get rendered due to their size.
          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 ({ x : ι // x b.support } ι) ({ x : ι // x 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
                theorem RootPairing.GeckConstruction.cartanSubalgebra_eq_lieSpan {ι : 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 ι] :
                @[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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x b.support }) :
                  { x : ι // x 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 : ι) :
                    { x : ι // x 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 : { x : ι // 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 : { x : ι // x 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 ({ x : ι // x b.support } ι) ({ x : ι // x b.support } ι) R ≃ₗ⁅R Matrix ({ x : ι // x b.support } ι) ({ x : ι // x b.support } ι) R

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

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[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 ({ x : ι // x b.support } ι) ({ x : ι // x b.support } ι) R) :
                        (ωConj b).invFun x = ω b * x * ω b
                        @[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 ({ x : ι // x b.support } ι) ({ x : ι // x b.support } ι) R) :
                        (ωConj b) 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 ({ x : ι // x b.support } ι) ({ x : ι // x 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)) ({ x : ι // x b.support } ιR)LieSubmodule R (↥(lieAlgebra b)) ({ x : ι // x 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)) ({ x : ι // x b.support } ιR)) {x : { x : ι // 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)) ({ x : ι // x b.support } ιR)) :