Documentation

LeanPool.VirasoroProject.HeisenbergAlgebra

Heisenberg algebra #

This file defines the Heisenberg algebra, as the one-dimensional central extension of a countably infinite dimensional abelian Lie algebra associated to a nontrivial 2-cocycle.

(The construction is mathematically boring, but the interesting part is the relation with Virasoro algebra: suitable positive energy representations of the Heisenberg algebra can be made into representations of the Virasoro algebra by a Sugawara construction.)

Main definitions #

Main statements #

Implementation notes #

The Heisenberg algebra is defined as a central extension of an infinite-dimensional abelian Lie algebra. (A more direct definition based on defining a Lie bracket on a countably infinite dimensional vector space would also be possible.)

Tags #

Heisenberg algebra

Abelian Lie algebra with a given basis #

def VirasoroProject.AbelianLieAlgebraOn (ι : Type u_1) (𝕜 : Type u_2) [CommRing 𝕜] :
Type (max u_2 u_1)

An auxiliary construction of an abelian Lie algebra with a given index set for a basis.

Equations
Instances For
    @[implicit_reducible]
    noncomputable instance VirasoroProject.instModuleAbelianLieAlgebraOn (ι : Type u_1) (𝕜 : Type u_2) [CommRing 𝕜] :
    Equations
    noncomputable def VirasoroProject.AbelianLieAlgebraOn.jgen {ι : Type u_1} (𝕜 : Type u_2) [CommRing 𝕜] :

    The basis of jᵢ generators of the abelian Lie algebra (indices i : ι).

    Equations
    Instances For
      theorem VirasoroProject.AbelianLieAlgebraOn.jgen_eq_single {ι : Type u_1} (𝕜 : Type u_2) [CommRing 𝕜] (i : ι) :
      (jgen 𝕜) i = Finsupp.single i 1
      @[implicit_reducible]
      noncomputable instance VirasoroProject.AbelianLieAlgebraOn.instLieRing {ι : Type u_1} (𝕜 : Type u_2) [CommRing 𝕜] :

      The Lie ring structure on the Witt algebra WittAlgebra.

      Equations
      • One or more equations did not get rendered due to their size.
      @[simp]
      theorem VirasoroProject.AbelianLieAlgebraOn.lie_def {ι : Type u_1} (𝕜 : Type u_2) [CommRing 𝕜] (X Y : AbelianLieAlgebraOn ι 𝕜) :
      X, Y = 0
      @[implicit_reducible]
      noncomputable instance VirasoroProject.AbelianLieAlgebraOn.instLieAlgebra {ι : Type u_1} (𝕜 : Type u_2) [CommRing 𝕜] :

      The Lie algebra structure on the Witt algebra WittAlgebra.

      Equations

      The 2-cocycle defining the Heisenberg algebra as central extension #

      A bilinear map version of the Heisenberg cocycle. (Defining equation: γ (jgen k) (jgen l) = k * δ[k+l,0].)

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem VirasoroProject.AbelianLieAlgebraOn.heisenbergCocycleBilin_apply_jgen_jgen (𝕜 : Type u_1) [Field 𝕜] (k l : ) :
        ((heisenbergCocycleBilin 𝕜) ((jgen 𝕜) k)) ((jgen 𝕜) l) = ↑(if k + l = 0 then k else 0)

        The Heisenberg cocycle.

        Equations
        Instances For
          theorem VirasoroProject.AbelianLieAlgebraOn.heisenbergCocycle_apply_jgen_jgen (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (k l : ) :
          ((heisenbergCocycle 𝕜) ((jgen 𝕜) k)) ((jgen 𝕜) l) = ↑(if k + l = 0 then k else 0)

          The Heisenberg cocycle is cohomologically nontrivial.

          The abelian Lie algebra 2-cohomology H²(AbelianLieAlgebraOn ℤ 𝕜, 𝕜) is nontrivial.

          The Heisenberg (Lie) algebra #

          theorem VirasoroProject.HeisenbergAlgebra.ext' (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] {X Y : HeisenbergAlgebra 𝕜} (h₁ : X.1 = Y.1) (h₂ : X.2 = Y.2) :
          X = Y
          @[simp]
          theorem VirasoroProject.HeisenbergAlgebra.bracket_fst (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (X Y : HeisenbergAlgebra 𝕜) :
          X, Y.1 = 0
          theorem VirasoroProject.HeisenbergAlgebra.add_def' (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (X Y : HeisenbergAlgebra 𝕜) :
          X + Y = (X.1 + Y.1, X.2 + Y.2)
          theorem VirasoroProject.HeisenbergAlgebra.smul_def' (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (c : 𝕜) (X : HeisenbergAlgebra 𝕜) :
          c X = (c X.1, c * X.2)
          @[simp]
          theorem VirasoroProject.HeisenbergAlgebra.add_fst (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (X Y : HeisenbergAlgebra 𝕜) :
          (X + Y).1 = X.1 + Y.1
          @[simp]
          theorem VirasoroProject.HeisenbergAlgebra.add_snd (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (X Y : HeisenbergAlgebra 𝕜) :
          (X + Y).2 = X.2 + Y.2
          @[simp]
          theorem VirasoroProject.HeisenbergAlgebra.smul_fst (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (c : 𝕜) (X : HeisenbergAlgebra 𝕜) :
          (c X).1 = c X.1
          @[simp]
          theorem VirasoroProject.HeisenbergAlgebra.smul_snd (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (c : 𝕜) (X : HeisenbergAlgebra 𝕜) :
          (c X).2 = c * X.2

          The Heisenberg algebra is a central extension of the Witt algebra.

          noncomputable def VirasoroProject.HeisenbergAlgebra.jgen (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (k : ) :

          The (commonly used) Jₖ elements of the Heisenberg algebra, for k ∈ ℤ.

          Equations
          Instances For
            noncomputable def VirasoroProject.HeisenbergAlgebra.kgen (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] :

            The K central element of the Heisenberg algebra, which is commonly set to 1 (in representations).

            Equations
            Instances For
              theorem VirasoroProject.HeisenbergAlgebra.kgen_eq' (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] :
              kgen 𝕜 = (0, 1)
              theorem VirasoroProject.HeisenbergAlgebra.jgen_eq' (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (k : ) :
              @[simp]
              theorem VirasoroProject.HeisenbergAlgebra.ofCentral_apply (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (a : 𝕜) :
              (ofCentral 𝕜) a = a kgen 𝕜
              @[simp]
              theorem VirasoroProject.HeisenbergAlgebra.lie_kgen (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (Z : HeisenbergAlgebra 𝕜) :
              kgen 𝕜, Z = 0
              @[simp]
              theorem VirasoroProject.HeisenbergAlgebra.lie_jgen (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (k l : ) :
              jgen 𝕜 k, jgen 𝕜 l = if k + l = 0 then k kgen 𝕜 else 0

              A section of the standard projection from the Heisenberg algebra to the underlying abelian Lie algebra.

              Equations
              Instances For
                @[simp]
                theorem VirasoroProject.HeisenbergAlgebra.jsection_jgen (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (l : ) :
                (jsection 𝕜) ((AbelianLieAlgebraOn.jgen 𝕜) l) = jgen 𝕜 l
                noncomputable def VirasoroProject.HeisenbergAlgebra.basisJK (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] :

                The most commonly used basis of the Heisenberg algebra, consisting of Jₖ (k ∈ ℤ) and the central element K. (Lean notation: jgen _ k and kgen _, respectively.)

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem VirasoroProject.HeisenbergAlgebra.basisJK_some (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (l : ) :
                  (basisJK 𝕜) (some l) = jgen 𝕜 l
                  @[simp]
                  theorem VirasoroProject.HeisenbergAlgebra.basisJK_none (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] :
                  (basisJK 𝕜) none = kgen 𝕜
                  @[simp]
                  theorem VirasoroProject.HeisenbergAlgebra.lie_jgen_zero (𝕜 : Type u_1) [Field 𝕜] [CharZero 𝕜] (Z : HeisenbergAlgebra 𝕜) :
                  jgen 𝕜 0, Z = 0

                  J₀ is central