Documentation

Mathlib.Algebra.Lie.Extension

Extensions of Lie algebras #

This file defines extensions of Lie algebras, given by short exact sequences of Lie algebra homomorphisms. They are implemented in two ways: IsExtension is a Prop-valued class taking two homomorphisms as parameters, and Extension is a structure that includes the middle Lie algebra.

Because our sign convention for differentials is opposite that of Chevalley-Eilenberg, there is a change of signs in the "action" part of the Lie bracket.

Main definitions #

TODO #

References #

class LieAlgebra.IsExtension {R : Type u_1} {N : Type u_2} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] (i : N →ₗ⁅R L) (p : L →ₗ⁅R M) :

A sequence of two Lie algebra homomorphisms is an extension if it is short exact.

Instances
    theorem LieHom.range_eq_ker_iff {R : Type u_1} {N : Type u_2} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] (i : N →ₗ⁅R L) (p : L →ₗ⁅R M) :
    def LieAlgebra.IsExtension.kerEquivRange {R : Type u_1} {N : Type u_2} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] (i : N →ₗ⁅R L) (p : L →ₗ⁅R M) [IsExtension i p] :
    p.ker ≃ₗ[R] i.range

    The equivalence from the kernel of the projection.

    Equations
    Instances For
      structure LieAlgebra.Extension (R : Type u_1) (N : Type u_2) (M : Type u_4) [CommRing R] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] :
      Type (max (max (max u_1 u_2) u_4) (u_5 + 1))

      The type of all Lie extensions of M by N. That is, short exact sequences of R-Lie algebra homomorphisms 0 → N → L → M → 0 where R, M, and N are fixed.

      Instances For
        instance LieAlgebra.instLieRingL {R : Type u_1} {N : Type u_2} {M : Type u_4} [CommRing R] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] (E : Extension R M N) :
        Equations
        instance LieAlgebra.instL {R : Type u_1} {N : Type u_2} {M : Type u_4} [CommRing R] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] (E : Extension R M N) :
        Equations
        def LieAlgebra.IsExtension.extension {R : Type u_1} {N : Type u_2} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] {i : N →ₗ⁅R L} {p : L →ₗ⁅R M} (h : IsExtension i p) :
        Extension R N M

        The bundled LieAlgebra.Extension corresponding to LieAlgebra.IsExtension

        Equations
        • h.extension = { L := L, instLieRing := inst✝⁵, instLieAlgebra := inst✝⁴, incl := i, proj := p, IsExtension := h }
        Instances For
          @[simp]
          theorem LieAlgebra.IsExtension.extension_instLieAlgebra {R : Type u_1} {N : Type u_2} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] {i : N →ₗ⁅R L} {p : L →ₗ⁅R M} (h : IsExtension i p) :
          @[simp]
          theorem LieAlgebra.IsExtension.extension_proj {R : Type u_1} {N : Type u_2} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] {i : N →ₗ⁅R L} {p : L →ₗ⁅R M} (h : IsExtension i p) :
          @[simp]
          theorem LieAlgebra.IsExtension.extension_incl {R : Type u_1} {N : Type u_2} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] {i : N →ₗ⁅R L} {p : L →ₗ⁅R M} (h : IsExtension i p) :
          @[simp]
          theorem LieAlgebra.IsExtension.extension_instLieRing {R : Type u_1} {N : Type u_2} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] {i : N →ₗ⁅R L} {p : L →ₗ⁅R M} (h : IsExtension i p) :
          @[simp]
          theorem LieAlgebra.IsExtension.extension_L {R : Type u_1} {N : Type u_2} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing N] [LieAlgebra R N] [LieRing M] [LieAlgebra R M] {i : N →ₗ⁅R L} {p : L →ₗ⁅R M} (h : IsExtension i p) :
          theorem LieAlgebra.isExtension_of_surjective {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] (f : L →ₗ⁅R M) (hf : Function.Surjective f) :

          A surjective Lie algebra homomorphism yields an extension.

          theorem LieAlgebra.Extension.incl_apply_mem_ker {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] (E : Extension R M L) (x : M) :
          @[simp]
          theorem LieAlgebra.Extension.proj_incl {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] (E : Extension R M L) (x : M) :
          E.proj (E.incl x) = 0
          theorem LieAlgebra.Extension.incl_injective {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] (E : Extension R M L) :
          theorem LieAlgebra.Extension.proj_surjective {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] (E : Extension R M L) :
          structure LieAlgebra.ofTwoCocycle {R : Type u_5} {L : Type u_6} {M : Type u_7} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) :
          Type (max u_6 u_7)

          A one-field structure giving a type synonym for a direct product. We use this to describe an alternative Lie algebra structure on the product, where the bracket is shifted by a 2-cocycle.

          • carrier : L × M

            The underlying type.

          Instances For
            def LieAlgebra.ofProd {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) :

            An equivalence between the direct product and the corresponding one-field structure. This is used to transfer the additive and scalar-multiple structure on the direct product to the type synonym.

            Equations
            Instances For
              @[simp]
              theorem LieAlgebra.of_zero {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) :
              (ofProd c) 0 = 0
              @[simp]
              theorem LieAlgebra.of_add {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) (x y : L × M) :
              (ofProd c) (x + y) = (ofProd c) x + (ofProd c) y
              @[simp]
              theorem LieAlgebra.of_smul {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) (r : R) (x : L × M) :
              (ofProd c) (r x) = r (ofProd c) x
              @[simp]
              theorem LieAlgebra.of_symm_zero {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) :
              (ofProd c).symm 0 = 0
              @[simp]
              theorem LieAlgebra.of_symm_add {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) (x y : ofTwoCocycle c) :
              (ofProd c).symm (x + y) = (ofProd c).symm x + (ofProd c).symm y
              @[simp]
              theorem LieAlgebra.of_symm_smul {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) (r : R) (x : ofTwoCocycle c) :
              (ofProd c).symm (r x) = r (ofProd c).symm x
              @[simp]
              theorem LieAlgebra.of_nsmul {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) (n : ) (x : L × M) :
              (ofProd c) (n x) = n (ofProd c) x
              @[simp]
              theorem LieAlgebra.of_symm_nsmul {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) (n : ) (x : ofTwoCocycle c) :
              (ofProd c).symm (n x) = n (ofProd c).symm x
              instance LieAlgebra.instLieRingOfTwoCocycle {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) :
              Equations
              • One or more equations did not get rendered due to their size.
              theorem LieAlgebra.bracket_ofTwoCocycle {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] {c : (LieModule.Cohomology.twoCocycle R L M)} (x y : ofTwoCocycle c) :
              x, y = (ofProd c) (((ofProd c).symm x).1, ((ofProd c).symm y).1, (c ((ofProd c).symm x).1) ((ofProd c).symm y).1 + ((ofProd c).symm x).1, ((ofProd c).symm y).2 - ((ofProd c).symm y).1, ((ofProd c).symm x).2)
              instance LieAlgebra.instOfTwoCocycle {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) :
              Equations
              def LieAlgebra.Extension.ofTwoCocycle {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] [IsLieAbelian M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) :
              Extension R M L

              The extension of Lie algebras defined by a 2-cocycle.

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

                The Lie algebra isomorphism given by the type synonym.

                Equations
                Instances For
                  theorem LieAlgebra.Extension.bracket {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] [IsLieAbelian M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) (x y : (ofTwoCocycle c).L) :
                  @[simp]
                  theorem LieAlgebra.Extension.ofTwoCocycle_incl_apply {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] [IsLieAbelian M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) (x : M) :
                  (ofTwoCocycle c).incl x = { carrier := (0, x) }
                  @[simp]
                  theorem LieAlgebra.Extension.ofTwoCocycle_proj_apply {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] [IsLieAbelian M] [LieRingModule L M] [LieModule R L M] (c : (LieModule.Cohomology.twoCocycle R L M)) (x : (ofTwoCocycle c).L) :
                  theorem LieAlgebra.Extension.lie_incl_mem_ker {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] {E : Extension R M L} (x : E.L) (y : M) :
                  noncomputable def LieAlgebra.Extension.toKer {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] (E : Extension R M L) :

                  The Lie algebra isomorphism from the kernel of an extension to the kernel of the projection.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem LieAlgebra.Extension.lie_toKer_apply {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] (E : Extension R M L) (x : M) (y : E.L) :
                    y, (E.toKer x) = y, E.incl x
                    noncomputable def LieAlgebra.Extension.ringModuleOf {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] [IsLieAbelian M] (E : Extension R M L) :

                    Given an extension of L by M whose kernel M is abelian, the kernel M gets an L-module structure. We do not make this an instance, because we may have to work with more than one extension.

                    Equations
                    Instances For
                      @[simp]
                      theorem LieAlgebra.Extension.ringModuleOf_bracket {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] [IsLieAbelian M] (E : Extension R M L) (x : L) (y : M) :
                      theorem LieAlgebra.Extension.lieModuleOf {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] [IsLieAbelian M] (E : Extension R M L) :
                      LieModule R L M

                      Given an extension of L by M whose kernel M is abelian, the kernel M gets an R-linear L-module structure. We do not make this an instance, because we may have to work with more than one extension.

                      theorem LieAlgebra.Extension.toKer_bracket {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] [IsLieAbelian M] (E : Extension R M L) (x : E.proj.ker) (y : L) :
                      theorem LieAlgebra.Extension.lie_apply_proj_of_leftInverse_eq {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] [IsLieAbelian M] (E : Extension R M L) {s : L →ₗ[R] E.L} (hs : Function.LeftInverse E.proj s) (x : E.L) (y : E.proj.ker) :
                      s (E.proj x), y = x, y
                      noncomputable def LieAlgebra.Extension.twoCocycleOf {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] [IsLieAbelian M] (E : Extension R M L) {s : L →ₗ[R] E.L} (hs : Function.LeftInverse E.proj s) :
                      have this := ; (LieModule.Cohomology.twoCocycle R L M)

                      The 2-cocycle attached to an extension with a linear section.

                      Equations
                      Instances For
                        @[simp]
                        theorem LieAlgebra.Extension.twoCocycleOf_coe_coe {R : Type u_1} {L : Type u_3} {M : Type u_4} [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing M] [LieAlgebra R M] [IsLieAbelian M] (E : Extension R M L) {s : L →ₗ[R] E.L} (hs : Function.LeftInverse E.proj s) :