Documentation

Mathlib.Algebra.Lie.OfAssociative

Lie algebras of associative algebras #

This file defines the Lie algebra structure that arises on an associative algebra via the ring commutator.

Since the linear endomorphisms of a Lie algebra form an associative algebra, one can define the adjoint action as a morphism of Lie algebras from a Lie algebra to its linear endomorphisms. We make such a definition in this file.

Main definitions #

Tags #

lie algebra, ring commutator, adjoint action

instance Ring.instBracket {A : Type v} [Ring A] :

The bracket operation for rings is the ring commutator, which captures the extent to which a ring is commutative. It is identically zero exactly when the ring is commutative.

Equations
  • Ring.instBracket = { bracket := fun (x y : A) => x * y - y * x }
theorem Ring.lie_def {A : Type v} [Ring A] (x : A) (y : A) :
x, y = x * y - y * x
theorem commute_iff_lie_eq {A : Type v} [Ring A] {x : A} {y : A} :
Commute x y x, y = 0
theorem Commute.lie_eq {A : Type v} [Ring A] {x : A} {y : A} (h : Commute x y) :
x, y = 0
instance LieRing.ofAssociativeRing {A : Type v} [Ring A] :

An associative ring gives rise to a Lie ring by taking the bracket to be the ring commutator.

Equations
  • One or more equations did not get rendered due to their size.
theorem LieRing.of_associative_ring_bracket {A : Type v} [Ring A] (x : A) (y : A) :
x, y = x * y - y * x
@[simp]
theorem LieRing.lie_apply {A : Type v} [Ring A] {α : Type u_1} (f : αA) (g : αA) (a : α) :
f, g a = f a, g a
@[reducible]

We can regard a module over an associative ring A as a Lie ring module over A with Lie bracket equal to its ring commutator.

Note that this cannot be a global instance because it would create a diamond when M = A, specifically we can build two mathematically-different bracket A As:

  1. @Ring.bracket A _ which says ⁅a, b⁆ = a * b - b * a
  2. (@LieRingModule.ofAssociativeModule A _ A _ _).toBracket which says ⁅a, b⁆ = a • b (and thus ⁅a, b⁆ = a * b)

See note [reducible non-instances]

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem lie_eq_smul {A : Type v} [Ring A] {M : Type w} [AddCommGroup M] [Module A M] (a : A) (m : M) :
    a, m = a m
    instance LieAlgebra.ofAssociativeAlgebra {A : Type v} [Ring A] {R : Type u} [CommRing R] [Algebra R A] :

    An associative algebra gives rise to a Lie algebra by taking the bracket to be the ring commutator.

    Equations
    theorem LieModule.ofAssociativeModule {A : Type v} [Ring A] {R : Type u} [CommRing R] [Algebra R A] {M : Type w} [AddCommGroup M] [Module R M] [Module A M] [IsScalarTower R A M] :
    LieModule R A M

    A representation of an associative algebra A is also a representation of A, regarded as a Lie algebra via the ring commutator.

    See the comment at LieRingModule.ofAssociativeModule for why the possibility M = A means this cannot be a global instance.

    instance Module.End.lieRingModule {R : Type u} [CommRing R] {M : Type w} [AddCommGroup M] [Module R M] :
    Equations
    • Module.End.lieRingModule = LieRingModule.ofAssociativeModule
    instance Module.End.lieModule {R : Type u} [CommRing R] {M : Type w} [AddCommGroup M] [Module R M] :
    Equations
    def AlgHom.toLieHom {A : Type v} [Ring A] {R : Type u} [CommRing R] [Algebra R A] {B : Type w} [Ring B] [Algebra R B] (f : A →ₐ[R] B) :

    The map ofAssociativeAlgebra associating a Lie algebra to an associative algebra is functorial.

    Equations
    Instances For
      Equations
      • AlgHom.instCoeAlgHomToCommSemiringToSemiringToSemiringLieHomOfAssociativeRingOfAssociativeAlgebraOfAssociativeRingOfAssociativeAlgebra = { coe := AlgHom.toLieHom }
      @[simp]
      theorem AlgHom.coe_toLieHom {A : Type v} [Ring A] {R : Type u} [CommRing R] [Algebra R A] {B : Type w} [Ring B] [Algebra R B] (f : A →ₐ[R] B) :
      (AlgHom.toLieHom f) = f
      theorem AlgHom.toLieHom_apply {A : Type v} [Ring A] {R : Type u} [CommRing R] [Algebra R A] {B : Type w} [Ring B] [Algebra R B] (f : A →ₐ[R] B) (x : A) :
      (AlgHom.toLieHom f) x = f x
      @[simp]
      theorem AlgHom.toLieHom_id {A : Type v} [Ring A] {R : Type u} [CommRing R] [Algebra R A] :
      AlgHom.toLieHom (AlgHom.id R A) = LieHom.id
      @[simp]
      theorem AlgHom.toLieHom_comp {A : Type v} [Ring A] {R : Type u} [CommRing R] [Algebra R A] {B : Type w} {C : Type w₁} [Ring B] [Ring C] [Algebra R B] [Algebra R C] (f : A →ₐ[R] B) (g : B →ₐ[R] C) :
      theorem AlgHom.toLieHom_injective {A : Type v} [Ring A] {R : Type u} [CommRing R] [Algebra R A] {B : Type w} [Ring B] [Algebra R B] {f : A →ₐ[R] B} {g : A →ₐ[R] B} (h : AlgHom.toLieHom f = AlgHom.toLieHom g) :
      f = g
      @[simp]
      theorem LieModule.toEndomorphism_apply_apply (R : Type u) (L : Type v) (M : Type w) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (x : L) (m : M) :
      def LieModule.toEndomorphism (R : Type u) (L : Type v) (M : Type w) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] :

      A Lie module yields a Lie algebra morphism into the linear endomorphisms of the module.

      See also LieModule.toModuleHom.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def LieAlgebra.ad (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] :

        The adjoint action of a Lie algebra on itself.

        Equations
        Instances For
          @[simp]
          theorem LieAlgebra.ad_apply (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] (x : L) (y : L) :
          ((LieAlgebra.ad R L) x) y = x, y
          @[simp]
          theorem LieSubalgebra.toEndomorphism_eq (R : Type u) (L : Type v) (M : Type w) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (K : LieSubalgebra R L) {x : K} :
          @[simp]
          theorem LieSubalgebra.toEndomorphism_mk (R : Type u) (L : Type v) (M : Type w) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (K : LieSubalgebra R L) {x : L} (hx : x K) :
          (LieModule.toEndomorphism R (K) M) { val := x, property := hx } = (LieModule.toEndomorphism R L M) x
          theorem LieSubmodule.coe_toEndomorphism (R : Type u) (L : Type v) (M : Type w) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (N : LieSubmodule R L M) (x : L) (y : N) :
          (((LieModule.toEndomorphism R L N) x) y) = ((LieModule.toEndomorphism R L M) x) y
          theorem LieSubmodule.coe_toEndomorphism_pow (R : Type u) (L : Type v) (M : Type w) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (N : LieSubmodule R L M) (x : L) (y : N) (n : ) :
          (((LieModule.toEndomorphism R L N) x ^ n) y) = ((LieModule.toEndomorphism R L M) x ^ n) y
          theorem LieSubalgebra.coe_ad (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] (H : LieSubalgebra R L) (x : H) (y : H) :
          (((LieAlgebra.ad R H) x) y) = ((LieAlgebra.ad R L) x) y
          theorem LieSubalgebra.coe_ad_pow (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] (H : LieSubalgebra R L) (x : H) (y : H) (n : ) :
          (((LieAlgebra.ad R H) x ^ n) y) = ((LieAlgebra.ad R L) x ^ n) y
          theorem LieModule.toEndomorphism_lie (R : Type u) {L : Type v} {M : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (x : L) (y : L) (z : M) :
          theorem LieAlgebra.ad_lie (R : Type u) {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (x : L) (y : L) (z : L) :
          ((LieAlgebra.ad R L) x) y, z = ((LieAlgebra.ad R L) x) y, z + y, ((LieAlgebra.ad R L) x) z
          theorem LieModule.toEndomorphism_pow_lie (R : Type u) {L : Type v} {M : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (x : L) (y : L) (z : M) (n : ) :
          ((LieModule.toEndomorphism R L M) x ^ n) y, z = Finset.sum (Finset.antidiagonal n) fun (ij : × ) => Nat.choose n ij.1 ((LieAlgebra.ad R L) x ^ ij.1) y, ((LieModule.toEndomorphism R L M) x ^ ij.2) z
          theorem LieAlgebra.ad_pow_lie (R : Type u) {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (x : L) (y : L) (z : L) (n : ) :
          ((LieAlgebra.ad R L) x ^ n) y, z = Finset.sum (Finset.antidiagonal n) fun (ij : × ) => Nat.choose n ij.1 ((LieAlgebra.ad R L) x ^ ij.1) y, ((LieAlgebra.ad R L) x ^ ij.2) z
          theorem LieModule.toEndomorphism_pow_comp_lieHom {R : Type u} {L : Type v} {M : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] {M₂ : Type w₁} [AddCommGroup M₂] [Module R M₂] [LieRingModule L M₂] [LieModule R L M₂] (f : M →ₗ⁅R,L M₂) (k : ) (x : L) :
          ((LieModule.toEndomorphism R L M₂) x ^ k) ∘ₗ f = f ∘ₗ (LieModule.toEndomorphism R L M) x ^ k
          theorem LieModule.toEndomorphism_pow_apply_map {R : Type u} {L : Type v} {M : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] {M₂ : Type w₁} [AddCommGroup M₂] [Module R M₂] [LieRingModule L M₂] [LieModule R L M₂] (f : M →ₗ⁅R,L M₂) (k : ) (x : L) (m : M) :
          ((LieModule.toEndomorphism R L M₂) x ^ k) (f m) = f (((LieModule.toEndomorphism R L M) x ^ k) m)
          theorem LieSubmodule.coe_map_toEndomorphism_le {R : Type u} {L : Type v} {M : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] {N : LieSubmodule R L M} {x : L} :
          theorem LieSubmodule.toEndomorphism_comp_subtype_mem {R : Type u} {L : Type v} {M : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (N : LieSubmodule R L M) (x : L) (m : M) (hm : m N) :
          ((LieModule.toEndomorphism R L M) x ∘ₗ Submodule.subtype N) { val := m, property := hm } N
          @[simp]
          theorem LieSubmodule.toEndomorphism_restrict_eq_toEndomorphism {R : Type u} {L : Type v} {M : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (N : LieSubmodule R L M) (x : L) (h : optParam (∀ (m : M) (hm : m N), ((LieModule.toEndomorphism R L M) x ∘ₗ Submodule.subtype N) { val := m, property := hm } N) (_ : ∀ (m : M) (hm : m N), ((LieModule.toEndomorphism R L M) x ∘ₗ Submodule.subtype N) { val := m, property := hm } N)) :
          theorem LieSubmodule.mapsTo_pow_toEndomorphism_sub_algebraMap {R : Type u} {L : Type v} {M : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (N : LieSubmodule R L M) {φ : R} {k : } {x : L} :
          Set.MapsTo (((LieModule.toEndomorphism R L M) x - (algebraMap R (Module.End R M)) φ) ^ k) N N
          theorem LieSubalgebra.ad_comp_incl_eq {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (K : LieSubalgebra R L) (x : K) :
          (LieAlgebra.ad R L) x ∘ₗ (LieSubalgebra.incl K) = (LieSubalgebra.incl K) ∘ₗ (LieAlgebra.ad R K) x
          def lieSubalgebraOfSubalgebra (R : Type u) [CommRing R] (A : Type v) [Ring A] [Algebra R A] (A' : Subalgebra R A) :

          A subalgebra of an associative algebra is a Lie subalgebra of the associated Lie algebra.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def LinearEquiv.lieConj {R : Type u} {M₁ : Type v} {M₂ : Type w} [CommRing R] [AddCommGroup M₁] [Module R M₁] [AddCommGroup M₂] [Module R M₂] (e : M₁ ≃ₗ[R] M₂) :

            A linear equivalence of two modules induces a Lie algebra equivalence of their endomorphisms.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem LinearEquiv.lieConj_apply {R : Type u} {M₁ : Type v} {M₂ : Type w} [CommRing R] [AddCommGroup M₁] [Module R M₁] [AddCommGroup M₂] [Module R M₂] (e : M₁ ≃ₗ[R] M₂) (f : Module.End R M₁) :
              @[simp]
              theorem LinearEquiv.lieConj_symm {R : Type u} {M₁ : Type v} {M₂ : Type w} [CommRing R] [AddCommGroup M₁] [Module R M₁] [AddCommGroup M₂] [Module R M₂] (e : M₁ ≃ₗ[R] M₂) :
              def AlgEquiv.toLieEquiv {R : Type u} {A₁ : Type v} {A₂ : Type w} [CommRing R] [Ring A₁] [Ring A₂] [Algebra R A₁] [Algebra R A₂] (e : A₁ ≃ₐ[R] A₂) :
              A₁ ≃ₗ⁅R A₂

              An equivalence of associative algebras is an equivalence of associated Lie algebras.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem AlgEquiv.toLieEquiv_apply {R : Type u} {A₁ : Type v} {A₂ : Type w} [CommRing R] [Ring A₁] [Ring A₂] [Algebra R A₁] [Algebra R A₂] (e : A₁ ≃ₐ[R] A₂) (x : A₁) :
                @[simp]
                theorem AlgEquiv.toLieEquiv_symm_apply {R : Type u} {A₁ : Type v} {A₂ : Type w} [CommRing R] [Ring A₁] [Ring A₂] [Algebra R A₁] [Algebra R A₂] (e : A₁ ≃ₐ[R] A₂) (x : A₂) :