Documentation

Mathlib.Algebra.Lie.Subalgebra

Lie subalgebras #

This file defines Lie subalgebras of a Lie algebra and provides basic related definitions and results.

Main definitions #

Tags #

lie algebra, lie subalgebra

structure LieSubalgebra (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] extends Submodule R L :

A Lie subalgebra of a Lie algebra is submodule that is closed under the Lie bracket. This is a sufficient condition for the subset itself to form a Lie algebra.

Instances For
    @[implicit_reducible]
    instance instZeroLieSubalgebra (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] :
    Zero (LieSubalgebra R L)

    The zero algebra is a subalgebra of any Lie algebra.

    @[implicit_reducible]
    instance instInhabitedLieSubalgebra (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] :
    Inhabited (LieSubalgebra R L)
    @[implicit_reducible]
    instance instCoeLieSubalgebraSubmodule (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] :
    Coe (LieSubalgebra R L) (Submodule R L)
    @[implicit_reducible]
    instance LieSubalgebra.instSetLike (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] :
    @[implicit_reducible]
    @[implicit_reducible]
    instance LieSubalgebra.lieRing (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) :
    LieRing โ†ฅL'

    A Lie subalgebra forms a new Lie ring.

    @[implicit_reducible]
    instance LieSubalgebra.instModuleSubtypeMemOfIsScalarTower (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] {Rโ‚ : Type u_1} [Semiring Rโ‚] [SMul Rโ‚ R] [Module Rโ‚ L] [IsScalarTower Rโ‚ R L] (L' : LieSubalgebra R L) :
    Module Rโ‚ โ†ฅL'

    A Lie subalgebra inherits module structures from L.

    instance LieSubalgebra.instIsCentralScalarSubtypeMem (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] {Rโ‚ : Type u_1} [Semiring Rโ‚] [SMul Rโ‚ R] [SMul Rโ‚แตแต’แต– R] [Module Rโ‚ L] [Module Rโ‚แตแต’แต– L] [IsScalarTower Rโ‚ R L] [IsScalarTower Rโ‚แตแต’แต– R L] [IsCentralScalar Rโ‚ L] (L' : LieSubalgebra R L) :
    IsCentralScalar Rโ‚ โ†ฅL'
    instance LieSubalgebra.instIsScalarTowerSubtypeMem (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] {Rโ‚ : Type u_1} [Semiring Rโ‚] [SMul Rโ‚ R] [Module Rโ‚ L] [IsScalarTower Rโ‚ R L] (L' : LieSubalgebra R L) :
    IsScalarTower Rโ‚ R โ†ฅL'
    @[implicit_reducible]
    instance LieSubalgebra.lieAlgebra (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) :
    LieAlgebra R โ†ฅL'

    A Lie subalgebra forms a new Lie algebra.

    theorem LieSubalgebra.zero_mem {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) :
    0 โˆˆ L'
    theorem LieSubalgebra.add_mem {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {x y : L} :
    x โˆˆ L' โ†’ y โˆˆ L' โ†’ x + y โˆˆ L'
    theorem LieSubalgebra.sub_mem {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {x y : L} :
    x โˆˆ L' โ†’ y โˆˆ L' โ†’ x - y โˆˆ L'
    theorem LieSubalgebra.smul_mem {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) (t : R) {x : L} (h : x โˆˆ L') :
    t โ€ข x โˆˆ L'
    theorem LieSubalgebra.lie_mem {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {x y : L} (hx : x โˆˆ L') (hy : y โˆˆ L') :
    โ…x, yโ† โˆˆ L'
    theorem LieSubalgebra.mem_carrier {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {x : L} :
    x โˆˆ L'.carrier โ†” x โˆˆ โ†‘L'
    theorem LieSubalgebra.mem_mk_iff {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (S : Set L) (hโ‚ : โˆ€ {a b : L}, a โˆˆ S โ†’ b โˆˆ S โ†’ a + b โˆˆ S) (hโ‚‚ : S 0) (hโ‚ƒ : โˆ€ (c : R) {x : L}, x โˆˆ { carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚ }.carrier โ†’ c โ€ข x โˆˆ { carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚ }.carrier) (hโ‚„ : โˆ€ {x y : L}, x โˆˆ { carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚, smul_mem' := hโ‚ƒ }.carrier โ†’ y โˆˆ { carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚, smul_mem' := hโ‚ƒ }.carrier โ†’ โ…x, yโ† โˆˆ { carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚, smul_mem' := hโ‚ƒ }.carrier) {x : L} :
    x โˆˆ { carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚, smul_mem' := hโ‚ƒ, lie_mem' := hโ‚„ } โ†” x โˆˆ S
    @[simp]
    theorem LieSubalgebra.mem_toSubmodule {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {x : L} :
    x โˆˆ L'.toSubmodule โ†” x โˆˆ L'
    @[simp]
    theorem LieSubalgebra.mem_mk_iff' {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (p : Submodule R L) (h : โˆ€ {x y : L}, x โˆˆ p.carrier โ†’ y โˆˆ p.carrier โ†’ โ…x, yโ† โˆˆ p.carrier) {x : L} :
    x โˆˆ { toSubmodule := p, lie_mem' := h } โ†” x โˆˆ p
    theorem LieSubalgebra.mem_coe {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {x : L} :
    x โˆˆ โ†‘L' โ†” x โˆˆ L'
    @[simp]
    theorem LieSubalgebra.coe_bracket {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) (x y : โ†ฅL') :
    โ†‘โ…x, yโ† = โ…โ†‘x, โ†‘yโ†
    theorem LieSubalgebra.ext_iff {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) (x y : โ†ฅL') :
    x = y โ†” โ†‘x = โ†‘y
    theorem LieSubalgebra.coe_zero_iff_zero {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) (x : โ†ฅL') :
    โ†‘x = 0 โ†” x = 0
    theorem LieSubalgebra.ext {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (Lโ‚' Lโ‚‚' : LieSubalgebra R L) (h : โˆ€ (x : L), x โˆˆ Lโ‚' โ†” x โˆˆ Lโ‚‚') :
    Lโ‚' = Lโ‚‚'
    theorem LieSubalgebra.ext_iff' {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (Lโ‚' Lโ‚‚' : LieSubalgebra R L) :
    Lโ‚' = Lโ‚‚' โ†” โˆ€ (x : L), x โˆˆ Lโ‚' โ†” x โˆˆ Lโ‚‚'
    @[simp]
    theorem LieSubalgebra.mk_coe {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (S : Set L) (hโ‚ : โˆ€ {a b : L}, a โˆˆ S โ†’ b โˆˆ S โ†’ a + b โˆˆ S) (hโ‚‚ : S 0) (hโ‚ƒ : โˆ€ (c : R) {x : L}, x โˆˆ { carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚ }.carrier โ†’ c โ€ข x โˆˆ { carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚ }.carrier) (hโ‚„ : โˆ€ {x y : L}, x โˆˆ { carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚, smul_mem' := hโ‚ƒ }.carrier โ†’ y โˆˆ { carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚, smul_mem' := hโ‚ƒ }.carrier โ†’ โ…x, yโ† โˆˆ { carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚, smul_mem' := hโ‚ƒ }.carrier) :
    โ†‘{ carrier := S, add_mem' := hโ‚, zero_mem' := hโ‚‚, smul_mem' := hโ‚ƒ, lie_mem' := hโ‚„ } = S
    theorem LieSubalgebra.toSubmodule_mk {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (p : Submodule R L) (h : โˆ€ {x y : L}, x โˆˆ p.carrier โ†’ y โˆˆ p.carrier โ†’ โ…x, yโ† โˆˆ p.carrier) :
    { toSubmodule := p, lie_mem' := h }.toSubmodule = p
    theorem LieSubalgebra.coe_injective {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] :
    Function.Injective SetLike.coe
    theorem LieSubalgebra.coe_set_eq {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (Lโ‚' Lโ‚‚' : LieSubalgebra R L) :
    โ†‘Lโ‚' = โ†‘Lโ‚‚' โ†” Lโ‚' = Lโ‚‚'
    @[simp]
    theorem LieSubalgebra.toSubmodule_inj {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (Lโ‚' Lโ‚‚' : LieSubalgebra R L) :
    Lโ‚'.toSubmodule = Lโ‚‚'.toSubmodule โ†” Lโ‚' = Lโ‚‚'
    theorem LieSubalgebra.coe_toSubmodule {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) :
    โ†‘L'.toSubmodule = โ†‘L'
    @[implicit_reducible]
    instance LieSubalgebra.instBracketSubtypeMem {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {M : Type w} [AddCommGroup M] [LieRingModule L M] :
    Bracket (โ†ฅL') M
    @[simp]
    theorem LieSubalgebra.coe_bracket_of_module {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {M : Type w} [AddCommGroup M] [LieRingModule L M] (x : โ†ฅL') (m : M) :
    instance LieSubalgebra.instIsLieTowerSubtypeMem {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {M : Type w} [AddCommGroup M] [LieRingModule L M] :
    IsLieTower (โ†ฅL') L M
    @[implicit_reducible]
    instance LieSubalgebra.lieRingModule {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {M : Type w} [AddCommGroup M] [LieRingModule L M] :
    LieRingModule (โ†ฅL') M

    Given a Lie algebra L containing a Lie subalgebra L' โІ L, together with a Lie ring module M of L, we may regard M as a Lie ring module of L' by restriction.

    instance LieSubalgebra.lieModule {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {M : Type w} [AddCommGroup M] [LieRingModule L M] [Module R M] [LieModule R L M] :
    LieModule R (โ†ฅL') M

    Given a Lie algebra L containing a Lie subalgebra L' โІ L, together with a Lie module M of L, we may regard M as a Lie module of L' by restriction.

    def LieModuleHom.restrictLie {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {M : Type w} [AddCommGroup M] [LieRingModule L M] {N : Type wโ‚} [AddCommGroup N] [LieRingModule L N] [Module R N] [Module R M] (f : M โ†’โ‚—โ…R,Lโ† N) (L' : LieSubalgebra R L) :

    An L-equivariant map of Lie modules M โ†’ N is L'-equivariant for any Lie subalgebra L' โІ L.

    Instances For
      @[simp]
      theorem LieModuleHom.coe_restrictLie {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) {M : Type w} [AddCommGroup M] [LieRingModule L M] {N : Type wโ‚} [AddCommGroup N] [LieRingModule L N] [Module R N] [Module R M] (f : M โ†’โ‚—โ…R,Lโ† N) :
      โ‡‘(f.restrictLie L') = โ‡‘f
      def LieSubalgebra.incl {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) :

      The embedding of a Lie subalgebra into the ambient space as a morphism of Lie algebras.

      Instances For
        @[simp]
        theorem LieSubalgebra.coe_incl {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) :
        โ‡‘L'.incl = Subtype.val
        def LieSubalgebra.incl' {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) :
        โ†ฅL' โ†’โ‚—โ…R,โ†ฅL'โ† L

        The embedding of a Lie subalgebra into the ambient space as a morphism of Lie modules.

        Instances For
          @[simp]
          theorem LieSubalgebra.coe_incl' {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (L' : LieSubalgebra R L) :
          โ‡‘L'.incl' = Subtype.val
          def LieHom.range {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) :
          LieSubalgebra R Lโ‚‚

          The range of a morphism of Lie algebras is a Lie subalgebra.

          Instances For
            @[simp]
            theorem LieHom.coe_range {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) :
            โ†‘f.range = Set.range โ‡‘f
            @[simp]
            theorem LieHom.mem_range {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) (x : Lโ‚‚) :
            x โˆˆ f.range โ†” โˆƒ (y : L), f y = x
            theorem LieHom.mem_range_self {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) (x : L) :
            f x โˆˆ f.range
            def LieHom.rangeRestrict {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) :

            We can restrict a morphism to a (surjective) map to its range.

            Instances For
              @[simp]
              theorem LieHom.rangeRestrict_apply {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) (x : L) :
              f.rangeRestrict x = โŸจf x, โ‹ฏโŸฉ
              theorem LieHom.surjective_rangeRestrict {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) :
              Function.Surjective โ‡‘f.rangeRestrict
              noncomputable def LieHom.equivRangeOfInjective {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) (h : Function.Injective โ‡‘f) :

              A Lie algebra is equivalent to its range under an injective Lie algebra morphism.

              Instances For
                @[simp]
                theorem LieHom.equivRangeOfInjective_apply {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) (h : Function.Injective โ‡‘f) (x : L) :
                (f.equivRangeOfInjective h) x = โŸจf x, โ‹ฏโŸฉ
                theorem Submodule.exists_lieSubalgebra_coe_eq_iff {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (p : Submodule R L) :
                (โˆƒ (K : LieSubalgebra R L), K.toSubmodule = p) โ†” โˆ€ (x y : L), x โˆˆ p โ†’ y โˆˆ p โ†’ โ…x, yโ† โˆˆ p
                @[simp]
                theorem LieSubalgebra.incl_range {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (K : LieSubalgebra R L) :
                K.incl.range = K
                def LieSubalgebra.map {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) (K : LieSubalgebra R L) :
                LieSubalgebra R Lโ‚‚

                The image of a Lie subalgebra under a Lie algebra morphism is a Lie subalgebra of the codomain.

                Instances For
                  @[simp]
                  theorem LieSubalgebra.mem_map {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) (K : LieSubalgebra R L) (x : Lโ‚‚) :
                  x โˆˆ map f K โ†” โˆƒ y โˆˆ K, f y = x
                  theorem LieSubalgebra.mem_map_submodule {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (K : LieSubalgebra R L) (e : L โ‰ƒโ‚—โ…Rโ† Lโ‚‚) (x : Lโ‚‚) :
                  x โˆˆ map e.toLieHom K โ†” x โˆˆ Submodule.map (โ†‘e.toLinearEquiv) K.toSubmodule
                  def LieSubalgebra.comap {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) (Kโ‚‚ : LieSubalgebra R Lโ‚‚) :

                  The preimage of a Lie subalgebra under a Lie algebra morphism is a Lie subalgebra of the domain.

                  Instances For
                    @[simp]
                    theorem LieSubalgebra.mem_comap {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) (Kโ‚‚ : LieSubalgebra R Lโ‚‚) {x : L} :
                    x โˆˆ comap f Kโ‚‚ โ†” f x โˆˆ Kโ‚‚
                    @[implicit_reducible]
                    theorem LieSubalgebra.le_def {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (K K' : LieSubalgebra R L) :
                    K โ‰ค K' โ†” โ†‘K โІ โ†‘K'
                    @[implicit_reducible]
                    instance LieSubalgebra.instBot {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] :
                    @[simp]
                    theorem LieSubalgebra.bot_coe {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] :
                    โ†‘โŠฅ = {0}
                    @[simp]
                    theorem LieSubalgebra.mem_bot {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (x : L) :
                    x โˆˆ โŠฅ โ†” x = 0
                    @[implicit_reducible]
                    instance LieSubalgebra.instTop {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] :
                    @[simp]
                    theorem LieSubalgebra.top_coe {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] :
                    @[simp]
                    theorem LieSubalgebra.mem_top {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (x : L) :
                    x โˆˆ โŠค
                    theorem LieHom.range_eq_map {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] (f : L โ†’โ‚—โ…Rโ† Lโ‚‚) :
                    @[implicit_reducible]
                    instance LieSubalgebra.instMin {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] :
                    Min (LieSubalgebra R L)
                    @[implicit_reducible]
                    instance LieSubalgebra.instInfSet {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] :
                    @[simp]
                    theorem LieSubalgebra.coe_inf {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (K K' : LieSubalgebra R L) :
                    โ†‘(K โŠ“ K') = โ†‘K โˆฉ โ†‘K'
                    @[simp]
                    theorem LieSubalgebra.sInf_toSubmodule {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (S : Set (LieSubalgebra R L)) :
                    (sInf S).toSubmodule = sInf {x : Submodule R L | โˆƒ s โˆˆ S, s.toSubmodule = x}
                    @[simp]
                    theorem LieSubalgebra.coe_sInf {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (S : Set (LieSubalgebra R L)) :
                    โ†‘(sInf S) = โ‹‚ s โˆˆ S, โ†‘s
                    @[implicit_reducible]

                    The set of Lie subalgebras of a Lie algebra form a complete lattice.

                    We provide explicit values for the fields bot, top, inf to get more convenient definitions than we would otherwise obtain from completeLatticeOfInf.

                    @[implicit_reducible]
                    instance LieSubalgebra.instAdd {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] :
                    Add (LieSubalgebra R L)
                    @[implicit_reducible]
                    instance LieSubalgebra.instZero {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] :
                    Zero (LieSubalgebra R L)
                    @[implicit_reducible]
                    @[simp]
                    theorem LieSubalgebra.add_eq_sup {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (K K' : LieSubalgebra R L) :
                    K + K' = K โŠ” K'
                    @[simp]
                    theorem LieSubalgebra.inf_toSubmodule {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (K K' : LieSubalgebra R L) :
                    (K โŠ“ K').toSubmodule = K.toSubmodule โŠ“ K'.toSubmodule
                    @[simp]
                    theorem LieSubalgebra.mem_inf {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (K K' : LieSubalgebra R L) (x : L) :
                    x โˆˆ K โŠ“ K' โ†” x โˆˆ K โˆง x โˆˆ K'
                    theorem LieSubalgebra.eq_bot_iff {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (K : LieSubalgebra R L) :
                    K = โŠฅ โ†” โˆ€ x โˆˆ K, x = 0
                    instance LieSubalgebra.subsingleton_of_bot {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] :
                    Subsingleton (LieSubalgebra R โ†ฅโŠฅ)
                    theorem LieSubalgebra.subsingleton_bot {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] :
                    Subsingleton โ†ฅโŠฅ
                    def LieSubalgebra.inclusion {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {K K' : LieSubalgebra R L} (h : K โ‰ค K') :
                    โ†ฅK โ†’โ‚—โ…Rโ† โ†ฅK'

                    Given two nested Lie subalgebras K โІ K', the inclusion K โ†ช K' is a morphism of Lie algebras.

                    Instances For
                      @[simp]
                      theorem LieSubalgebra.coe_inclusion {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {K K' : LieSubalgebra R L} (h : K โ‰ค K') (x : โ†ฅK) :
                      โ†‘((inclusion h) x) = โ†‘x
                      theorem LieSubalgebra.inclusion_apply {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {K K' : LieSubalgebra R L} (h : K โ‰ค K') (x : โ†ฅK) :
                      (inclusion h) x = โŸจโ†‘x, โ‹ฏโŸฉ
                      theorem LieSubalgebra.inclusion_injective {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {K K' : LieSubalgebra R L} (h : K โ‰ค K') :
                      Function.Injective โ‡‘(inclusion h)
                      def LieSubalgebra.ofLe {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {K K' : LieSubalgebra R L} (h : K โ‰ค K') :
                      LieSubalgebra R โ†ฅK'

                      Given two nested Lie subalgebras K โІ K', we can view K as a Lie subalgebra of K', regarded as Lie algebra in its own right.

                      Instances For
                        @[simp]
                        theorem LieSubalgebra.mem_ofLe {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {K K' : LieSubalgebra R L} (h : K โ‰ค K') (x : โ†ฅK') :
                        x โˆˆ ofLe h โ†” โ†‘x โˆˆ K
                        theorem LieSubalgebra.ofLe_eq_comap_incl {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {K K' : LieSubalgebra R L} (h : K โ‰ค K') :
                        ofLe h = comap K'.incl K
                        @[simp]
                        theorem LieSubalgebra.coe_ofLe {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {K K' : LieSubalgebra R L} (h : K โ‰ค K') :
                        noncomputable def LieSubalgebra.equivOfLe {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {K K' : LieSubalgebra R L} (h : K โ‰ค K') :
                        โ†ฅK โ‰ƒโ‚—โ…Rโ† โ†ฅ(ofLe h)

                        Given nested Lie subalgebras K โІ K', there is a natural equivalence from K to its image in K'.

                        Instances For
                          @[simp]
                          theorem LieSubalgebra.equivOfLe_apply {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {K K' : LieSubalgebra R L} (h : K โ‰ค K') (x : โ†ฅK) :
                          (equivOfLe h) x = โŸจ(inclusion h) x, โ‹ฏโŸฉ
                          theorem LieSubalgebra.map_le_iff_le_comap {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] {f : L โ†’โ‚—โ…Rโ† Lโ‚‚} {K : LieSubalgebra R L} {K' : LieSubalgebra R Lโ‚‚} :
                          map f K โ‰ค K' โ†” K โ‰ค comap f K'
                          theorem LieSubalgebra.gc_map_comap {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {Lโ‚‚ : Type w} [LieRing Lโ‚‚] [LieAlgebra R Lโ‚‚] {f : L โ†’โ‚—โ…Rโ† Lโ‚‚} :
                          def LieSubalgebra.lieSpan (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] (s : Set L) :

                          The Lie subalgebra of a Lie algebra L generated by a subset s โІ L.

                          Instances For
                            theorem LieSubalgebra.mem_lieSpan {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {s : Set L} {x : L} :
                            x โˆˆ lieSpan R L s โ†” โˆ€ (K : LieSubalgebra R L), s โІ โ†‘K โ†’ x โˆˆ K
                            theorem LieSubalgebra.subset_lieSpan {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {s : Set L} :
                            s โІ โ†‘(lieSpan R L s)
                            theorem LieSubalgebra.lieSpan_le {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {s : Set L} {K : LieSubalgebra R L} :
                            lieSpan R L s โ‰ค K โ†” s โІ โ†‘K
                            theorem LieSubalgebra.lieSpan_mono {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {s t : Set L} (h : s โІ t) :
                            theorem LieSubalgebra.lieSpan_eq {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (K : LieSubalgebra R L) :
                            lieSpan R L โ†‘K = K
                            theorem LieSubalgebra.coe_lieSpan_submodule_eq_iff {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {p : Submodule R L} :
                            (lieSpan R L โ†‘p).toSubmodule = p โ†” โˆƒ (K : LieSubalgebra R L), K.toSubmodule = p
                            theorem LieSubalgebra.coe_lieSpan_eq_span_of_forall_lie_eq_zero {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {s : Set L} (hs : โˆ€ x โˆˆ s, โˆ€ y โˆˆ s, โ…x, yโ† = 0) :

                            lieSpan forms a Galois insertion with the coercion from LieSubalgebra to Set.

                            Instances For
                              @[simp]
                              theorem LieSubalgebra.span_empty (R : Type u) (L : Type v) [CommRing R] [LieRing L] [LieAlgebra R L] :
                              lieSpan R L โˆ… = โŠฅ
                              theorem LieSubalgebra.span_union (R : Type u) {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (s t : Set L) :
                              lieSpan R L (s โˆช t) = lieSpan R L s โŠ” lieSpan R L t
                              theorem LieSubalgebra.span_iUnion (R : Type u) {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {ฮน : Sort u_1} (s : ฮน โ†’ Set L) :
                              lieSpan R L (โ‹ƒ (i : ฮน), s i) = โจ† (i : ฮน), lieSpan R L (s i)
                              theorem LieSubalgebra.lieSpan_induction (R : Type u) {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {s : Set L} {p : (x : L) โ†’ x โˆˆ lieSpan R L s โ†’ Prop} (mem : โˆ€ (x : L) (h : x โˆˆ s), p x โ‹ฏ) (zero : p 0 โ‹ฏ) (add : โˆ€ (x y : L) (hx : x โˆˆ lieSpan R L s) (hy : y โˆˆ lieSpan R L s), p x hx โ†’ p y hy โ†’ p (x + y) โ‹ฏ) (smul : โˆ€ (a : R) (x : L) (hx : x โˆˆ lieSpan R L s), p x hx โ†’ p (a โ€ข x) โ‹ฏ) {x : L} (lie : โˆ€ (x y : L) (hx : x โˆˆ lieSpan R L s) (hy : y โˆˆ lieSpan R L s), p x hx โ†’ p y hy โ†’ p โ…x, yโ† โ‹ฏ) (hx : x โˆˆ lieSpan R L s) :
                              p x hx

                              An induction principle for span membership. If p holds for 0 and all elements of s, and is preserved under addition, scalar multiplication and the Lie bracket, then p holds for all elements of the Lie algebra spanned by s.

                              @[simp]
                              theorem LieSubalgebra.lieSpan_neg (R : Type u) {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {s : Set L} :
                              lieSpan R L (-s) = lieSpan R L s
                              @[simp]
                              theorem LieSubalgebra.lieSpan_lieSpan_coe_preimage {R : Type u} {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] {s : Set L} :
                              lieSpan R (โ†ฅ(lieSpan R L s)) (Subtype.val โปยน' s) = โŠค
                              theorem LieSubalgebra.comap_lieSpan_range_eq (R : Type u) {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (K : LieSubalgebra R L) {ฮน : Type u_1} (f : ฮน โ†’ โ†ฅK) :
                              comap K.incl (lieSpan R L (Set.range (Subtype.val โˆ˜ f))) = lieSpan R (โ†ฅK) (Set.range f)
                              noncomputable def LieEquiv.ofInjective {R : Type u} {Lโ‚ : Type v} {Lโ‚‚ : Type w} [CommRing R] [LieRing Lโ‚] [LieRing Lโ‚‚] [LieAlgebra R Lโ‚] [LieAlgebra R Lโ‚‚] (f : Lโ‚ โ†’โ‚—โ…Rโ† Lโ‚‚) (h : Function.Injective โ‡‘f) :

                              An injective Lie algebra morphism is an equivalence onto its range.

                              Instances For
                                @[simp]
                                theorem LieEquiv.ofInjective_apply {R : Type u} {Lโ‚ : Type v} {Lโ‚‚ : Type w} [CommRing R] [LieRing Lโ‚] [LieRing Lโ‚‚] [LieAlgebra R Lโ‚] [LieAlgebra R Lโ‚‚] (f : Lโ‚ โ†’โ‚—โ…Rโ† Lโ‚‚) (h : Function.Injective โ‡‘f) (x : Lโ‚) :
                                โ†‘((ofInjective f h) x) = f x
                                def LieEquiv.ofEq {R : Type u} {Lโ‚ : Type v} [CommRing R] [LieRing Lโ‚] [LieAlgebra R Lโ‚] (Lโ‚' Lโ‚'' : LieSubalgebra R Lโ‚) (h : โ†‘Lโ‚' = โ†‘Lโ‚'') :
                                โ†ฅLโ‚' โ‰ƒโ‚—โ…Rโ† โ†ฅLโ‚''

                                Lie subalgebras that are equal as sets are equivalent as Lie algebras.

                                Instances For
                                  @[simp]
                                  theorem LieEquiv.ofEq_apply {R : Type u} {Lโ‚ : Type v} [CommRing R] [LieRing Lโ‚] [LieAlgebra R Lโ‚] (L L' : LieSubalgebra R Lโ‚) (h : โ†‘L = โ†‘L') (x : โ†ฅL) :
                                  โ†‘((ofEq L L' h) x) = โ†‘x
                                  def LieEquiv.lieSubalgebraMap {R : Type u} {Lโ‚ : Type v} {Lโ‚‚ : Type w} [CommRing R] [LieRing Lโ‚] [LieRing Lโ‚‚] [LieAlgebra R Lโ‚] [LieAlgebra R Lโ‚‚] (Lโ‚'' : LieSubalgebra R Lโ‚) (e : Lโ‚ โ‰ƒโ‚—โ…Rโ† Lโ‚‚) :
                                  โ†ฅLโ‚'' โ‰ƒโ‚—โ…Rโ† โ†ฅ(LieSubalgebra.map e.toLieHom Lโ‚'')

                                  An equivalence of Lie algebras restricts to an equivalence from any Lie subalgebra onto its image.

                                  Instances For
                                    @[simp]
                                    theorem LieEquiv.lieSubalgebraMap_apply {R : Type u} {Lโ‚ : Type v} {Lโ‚‚ : Type w} [CommRing R] [LieRing Lโ‚] [LieRing Lโ‚‚] [LieAlgebra R Lโ‚] [LieAlgebra R Lโ‚‚] (Lโ‚'' : LieSubalgebra R Lโ‚) (e : Lโ‚ โ‰ƒโ‚—โ…Rโ† Lโ‚‚) (x : โ†ฅLโ‚'') :
                                    โ†‘((lieSubalgebraMap Lโ‚'' e) x) = e โ†‘x
                                    def LieEquiv.ofSubalgebras {R : Type u} {Lโ‚ : Type v} {Lโ‚‚ : Type w} [CommRing R] [LieRing Lโ‚] [LieRing Lโ‚‚] [LieAlgebra R Lโ‚] [LieAlgebra R Lโ‚‚] (Lโ‚' : LieSubalgebra R Lโ‚) (Lโ‚‚' : LieSubalgebra R Lโ‚‚) (e : Lโ‚ โ‰ƒโ‚—โ…Rโ† Lโ‚‚) (h : LieSubalgebra.map e.toLieHom Lโ‚' = Lโ‚‚') :
                                    โ†ฅLโ‚' โ‰ƒโ‚—โ…Rโ† โ†ฅLโ‚‚'

                                    An equivalence of Lie algebras restricts to an equivalence from any Lie subalgebra onto its image.

                                    Instances For
                                      @[simp]
                                      theorem LieEquiv.ofSubalgebras_apply {R : Type u} {Lโ‚ : Type v} {Lโ‚‚ : Type w} [CommRing R] [LieRing Lโ‚] [LieRing Lโ‚‚] [LieAlgebra R Lโ‚] [LieAlgebra R Lโ‚‚] (Lโ‚' : LieSubalgebra R Lโ‚) (Lโ‚‚' : LieSubalgebra R Lโ‚‚) (e : Lโ‚ โ‰ƒโ‚—โ…Rโ† Lโ‚‚) (h : LieSubalgebra.map e.toLieHom Lโ‚' = Lโ‚‚') (x : โ†ฅLโ‚') :
                                      โ†‘((ofSubalgebras Lโ‚' Lโ‚‚' e h) x) = e โ†‘x
                                      @[simp]
                                      theorem LieEquiv.ofSubalgebras_symm_apply {R : Type u} {Lโ‚ : Type v} {Lโ‚‚ : Type w} [CommRing R] [LieRing Lโ‚] [LieRing Lโ‚‚] [LieAlgebra R Lโ‚] [LieAlgebra R Lโ‚‚] (Lโ‚' : LieSubalgebra R Lโ‚) (Lโ‚‚' : LieSubalgebra R Lโ‚‚) (e : Lโ‚ โ‰ƒโ‚—โ…Rโ† Lโ‚‚) (h : LieSubalgebra.map e.toLieHom Lโ‚' = Lโ‚‚') (x : โ†ฅLโ‚‚') :
                                      โ†‘((ofSubalgebras Lโ‚' Lโ‚‚' e h).symm x) = e.symm โ†‘x