VirasoroProject

8.1. The basic bosonic Sugawara construction🔗

Throughout this section, let \bbk be a field of characteristic zero.

If a vector space V has a representation of the Heisenberg algebra on a vector space V, where the central element K (see Definition 6.4), acts as \id_V, then the basis elements (J_k)_{k \in \bZ} (see Definition 6.4) are linear operators \Joper_k \colon V \to V satisfying the commutation relations

\begin{aligned} \mathrm{\tagHeiComm} \qquad [\Joper_k, \Joper_l] \; = \; \Joper_k \circ \Joper_l - \Joper_l \circ \Joper_k \; = \; k \, \delta_{k+l,0} \; \id_V . \end{aligned}

Below we will assume such operators being fixed, and satisfying furthermore the local truncation condition on V: for any fixed v \in V we have \Joper_k \, v = 0 for k \gg 0, i.e.,

\begin{aligned} \mathrm{\tagHeiTrunc} \qquad \forall v \in V , \; \exists N, \; \forall k \ge N, \quad \Joper_k \, v = 0 . \end{aligned}

Definition8.1.1
uses 0
Used by 4
Reverse dependency previews
Preview
Lemma 8.1.2
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Normal ordering. For k,l \in \bZ, we denote the normal ordered product of the operators \Joper_k and \Joper_l by

\begin{aligned} \normalOrder{\Joper_k \, \Joper_l} \; := \; \begin{cases} \Joper_k \circ \Joper_l & \text{ if } k \le l \\ \Joper_l \circ \Joper_k & \text{ if } k \, > \, l . \end{cases} \end{aligned}

Lean code for Definition8.1.1●1 definition
  • complete
    def VirasoroProject.pairNO.{u_1, u_2} {𝕜 : Type u_1} [Field 𝕜]
      {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] (heiOper : ℤ → V →ₗ[𝕜] V)
      (k l : ℤ) : V →ₗ[𝕜] V
    def VirasoroProject.pairNO.{u_1, u_2}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2}
      [AddCommGroup V] [Module 𝕜 V]
      (heiOper : ℤ → V →ₗ[𝕜] V) (k l : ℤ) :
      V →ₗ[𝕜] V
    Normal ordered pair of two operators:
    `pairNO k l` equals `(heiOper l) ∘ (heiOper k)` if `l ≤ k`,
    and `(heiOper k) ∘ (heiOper l)` otherwise. 
Lemma8.1.2
uses 1used by 1✓L∃∀N

Alternative normal ordering. Suppose that (\Joper_{k})_{k \in \bZ} satisfy the commutation relations \tagHeiComm{}. Then for any k,l \in \bZ we have

\begin{aligned} \normalOrder{\Joper_k \, \Joper_l} \; = \; \begin{cases} \Joper_k \circ \Joper_l & \text{ if } k < 0 \\ \Joper_l \circ \Joper_k & \text{ if } k \ge 0 . \end{cases} \end{aligned}

Lean code for Lemma8.1.2●1 theorem
  • complete
    theorem VirasoroProject.heiOper_pairNO_eq_pairNO'.{u_1, u_2} {𝕜 : Type u_1}
      [Field 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiComm :
        ∀ (k l : ℤ),
          (heiOper k).commutator (heiOper l) =
            if k + l = 0 then ↑k • 1 else 0)
      (k l : ℤ) :
      VirasoroProject.pairNO heiOper k l =
        VirasoroProject.pairNO' heiOper k l
    theorem VirasoroProject.heiOper_pairNO_eq_pairNO'.{u_1,
        u_2}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2}
      [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiComm :
        ∀ (k l : ℤ),
          (heiOper k).commutator (heiOper l) =
            if k + l = 0 then ↑k • 1 else 0)
      (k l : ℤ) :
      VirasoroProject.pairNO heiOper k l =
        VirasoroProject.pairNO' heiOper k l
    The two definitions of normal ordered pairs coincide. 
Proof for Lemma 8.1.2
uses 0

Straightforward using the commutation relations \tagHeiComm{}.

Lemma8.1.3
uses 1used by 1✓L∃∀N

Local truncation for normal ordered products. Suppose that (\Joper_{k})_{k \in \bZ} satisfy the local truncation condition \tagHeiTrunc{}. Then for any v \in V there exists an N such that whenever \max \{k,l\} \ge N we have \normalOrder{\Joper_{k} \, \Joper_{l}} \, v = 0.

Lean code for Lemma8.1.3●1 theorem
  • complete
    theorem VirasoroProject.pairNO_apply_eq_zero.{u_1, u_2} {𝕜 : Type u_1} [Field 𝕜]
      {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] (A : ℤ → V →ₗ[𝕜] V)
      {v : V} {N : ℤ} (A_trunc : ∀ n ≥ N, (A n) v = 0) {k l : ℤ}
      (h : N ≤ max k l) : (VirasoroProject.pairNO A k l) v = 0
    theorem VirasoroProject.pairNO_apply_eq_zero.{u_1,
        u_2}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2}
      [AddCommGroup V] [Module 𝕜 V]
      (A : ℤ → V →ₗ[𝕜] V) {v : V} {N : ℤ}
      (A_trunc : ∀ n ≥ N, (A n) v = 0)
      {k l : ℤ} (h : N ≤ max k l) :
      (VirasoroProject.pairNO A k l) v = 0
Proof for Lemma 8.1.3
uses 0

Fixing v \in V, the local truncation condition \tagHeiTrunc{} gives the existence of an N such that \Joper_{k} \, v = 0 for k \ge N. It is then clear by inspection of Definition 8.1.1 that \normalOrder{\Joper_{k} \, \Joper_{l}} \, v = 0 when \max \{k,l\} \ge N.

Lemma8.1.4
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 8.1.5
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Local finite support for homogeneous normal ordered products. Suppose that (\Joper_{k})_{k \in \bZ} satisfy the local truncation condition \tagHeiTrunc{}. Then for any n \in \bZ and any v \in V, there are only finitely many k \in \bZ such that \normalOrder{\Joper_{n-k} \, \Joper_k} \, v \ne 0.

Lean code for Lemma8.1.4●1 theorem
  • complete
    theorem VirasoroProject.hasFiniteSupport_smul_pairNO_apply.{u_1, u_2, u_3}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc : ∀ (v : V), ∀ᶠ (l : ℤ) in Filter.atTop, (heiOper l) v = 0)
      {𝕂 : Type u_3} [Zero 𝕂] [SMulZeroClass 𝕂 V] (c : ℤ → 𝕂) (n m : ℤ)
      (v : V) :
      Function.HasFiniteSupport fun k =>
        c k • (VirasoroProject.pairNO heiOper (n - k) (m + k)) v
    theorem VirasoroProject.hasFiniteSupport_smul_pairNO_apply.{u_1,
        u_2, u_3}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2}
      [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc :
        ∀ (v : V),
          ∀ᶠ (l : ℤ) in Filter.atTop,
            (heiOper l) v = 0)
      {𝕂 : Type u_3} [Zero 𝕂]
      [SMulZeroClass 𝕂 V] (c : ℤ → 𝕂)
      (n m : ℤ) (v : V) :
      Function.HasFiniteSupport fun k =>
        c k •
          (VirasoroProject.pairNO heiOper
              (n - k) (m + k))
            v
    Weighted version of `hasFiniteSupport_pairNO_apply`. 
Proof for Lemma 8.1.4

Straightforward from Lemma 8.1.3.

Definition8.1.5
Statement uses 2
Statement dependency previews
Preview
Definition 8.1.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 5
Reverse dependency previews
Preview
Lemma 8.1.6
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Sugawara operators. Suppose that (\Joper_{k})_{k \in \bZ} satisfy the local truncation condition \tagHeiTrunc{}. Then for any n \in \bZ, a linear operator

\begin{aligned} \Loper_n \colon V \to V \end{aligned}

can be defined by the formula

\begin{aligned} \Loper_n \, v := \frac{1}{2} \sum_{k \in \bZ} \normalOrder{\Joper_{n-k} \, \Joper_k} \, v \qquad \text{ for } v \in V \end{aligned}

(the sum only has finitely many terms by Lemma 8.1.4).

We call the operators (\Loper_n)_{n \in \bZ} the Sugawara operators.

Lean code for Definition8.1.5●1 definition
  • complete
    def VirasoroProject.sugawaraGen.{u_1, u_2} {𝕜 : Type u_1} [Field 𝕜]
      {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc : ∀ (v : V), ∀ᶠ (l : ℤ) in Filter.atTop, (heiOper l) v = 0)
      (n : ℤ) : V →ₗ[𝕜] V
    def VirasoroProject.sugawaraGen.{u_1, u_2}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2}
      [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc :
        ∀ (v : V),
          ∀ᶠ (l : ℤ) in Filter.atTop,
            (heiOper l) v = 0)
      (n : ℤ) : V →ₗ[𝕜] V
    The basic bosonic Sugawara generators (as linear operators). 
Lemma8.1.6
uses 1used by 1✓L∃∀N

Commutators of Sugawara operators as series. Suppose that (\Joper_{k})_{k \in \bZ} satisfy the local truncation condition \tagHeiTrunc{}, and suppose that \mathsf{A} \colon V \to V is a linear operator. Then for any n \in \bZ, the action of the commutator [\Loper_n, \mathsf{A}] on any v \in V is given by the series

\begin{aligned} [\Loper_n, \mathsf{A}] \, v = \frac{1}{2} \sum_{k \in \bZ} [\normalOrder{\Joper_{n-k} \, \Joper_k}, \mathsf{A}] \, v \end{aligned}

where only finitely many of the terms are nonzero.

Lean code for Lemma8.1.6●1 theorem
  • complete
    theorem VirasoroProject.commutator_sugawaraGen_apply_eq_finsum_commutator_apply.{u_1,
        u_2}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc : ∀ (v : V), ∀ᶠ (l : ℤ) in Filter.atTop, (heiOper l) v = 0)
      (n : ℤ) (A : V →ₗ[𝕜] V) (v : V) :
      ((VirasoroProject.sugawaraGen heiTrunc n).commutator A) v =
        2⁻¹ •
          ∑ᶠ (k : ℤ),
            ((VirasoroProject.pairNO heiOper (n - k) k).commutator A) v
    theorem VirasoroProject.commutator_sugawaraGen_apply_eq_finsum_commutator_apply.{u_1,
        u_2}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2}
      [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc :
        ∀ (v : V),
          ∀ᶠ (l : ℤ) in Filter.atTop,
            (heiOper l) v = 0)
      (n : ℤ) (A : V →ₗ[𝕜] V) (v : V) :
      ((VirasoroProject.sugawaraGen heiTrunc
                n).commutator
            A)
          v =
        2⁻¹ •
          ∑ᶠ (k : ℤ),
            ((VirasoroProject.pairNO heiOper
                    (n - k) k).commutator
                A)
              v
    The commutator of a Sugawara generator with any operator `A`, applied to a vector, expanded
    as a sum of commutators with the normal-ordered pairs. 
Proof for Lemma 8.1.6

Write

\begin{aligned} [\Loper_n, A] \, v = \; & \Loper_n \, A \, v - A \, \Loper_n \, v \\ = \; & \frac{1}{2} \sum_{k \in \bZ} \normalOrder{\Joper_{n-k} \, \Joper_k} \, \mathsf{A} \, v - \frac{1}{2} \mathsf{A} \sum_{k \in \bZ} \normalOrder{\Joper_{n-k} \, \Joper_k} \, v . \end{aligned}

By Lemma 8.1.4, only finitely many of the terms in both sums are nonzero and they may be rearranged to the asserted form of sum of commutators. The resulting sum only has finitely many nonzero terms and is therefore well-defined.

Lemma8.1.7
uses 1used by 1✓L∃∀N

Commutator of Sugawara operators with Heisenberg operators. Suppose that (\Joper_{k})_{k \in \bZ} satisfy the commutation relations \tagHeiComm{} and the local truncation condition \tagHeiTrunc{}. Then for any n \in \bZ and k \in \bZ, we have

\begin{aligned} [\Loper_n, \Joper_k] \; = \; - k \, \Joper_{n+k} . \end{aligned}

Lean code for Lemma8.1.7●1 theorem
  • complete
    theorem VirasoroProject.commutator_sugawaraGen_heiOper.{u_1, u_2} {𝕜 : Type u_1}
      [Field 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc : ∀ (v : V), ∀ᶠ (l : ℤ) in Filter.atTop, (heiOper l) v = 0)
      (heiComm :
        ∀ (k l : ℤ),
          (heiOper k).commutator (heiOper l) =
            if k + l = 0 then ↑k • 1 else 0)
      [CharZero 𝕜] (n m : ℤ) :
      (VirasoroProject.sugawaraGen heiTrunc n).commutator (heiOper m) =
        -↑m • heiOper (n + m)
    theorem VirasoroProject.commutator_sugawaraGen_heiOper.{u_1,
        u_2}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2}
      [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc :
        ∀ (v : V),
          ∀ᶠ (l : ℤ) in Filter.atTop,
            (heiOper l) v = 0)
      (heiComm :
        ∀ (k l : ℤ),
          (heiOper k).commutator (heiOper l) =
            if k + l = 0 then ↑k • 1 else 0)
      [CharZero 𝕜] (n m : ℤ) :
      (VirasoroProject.sugawaraGen heiTrunc
              n).commutator
          (heiOper m) =
        -↑m • heiOper (n + m)
    `[L(n), J(m)] = -m • J(n+m)` 
Proof for Lemma 8.1.7

Calculation, using Lemma 8.1.6 and the commutator formula [A,BC] = B[A,C] + [A,B]C.

Lemma8.1.8
uses 1used by 1✓L∃∀N

Commutator of Sugawara operators with normal ordered pairs. Suppose that (\Joper_{k})_{k \in \bZ} satisfy the commutation relations \tagHeiComm{} and the local truncation condition \tagHeiTrunc{}. Then for any n \in \bZ and k, m \in \bZ, we have

\begin{aligned} [\Loper_n, \normalOrder{\Joper_k \, \Joper_{m-k}}] = \; & -k \, \normalOrder{\Joper_{n+k} \, \Joper_{m-k}} - (m-k) \, \normalOrder{\Joper_{k} \, \Joper_{n+m-k}} \\ & \; + k \, (n+k) \, \delta_{n+m,0} \Big( \indicator{k + n \le 0} - \indicator{k \le 0} \Big) \, \id_V . \end{aligned}

where \indicator{\mathrm{condition}} is defined as 1 if the condition is true and 0 otherwise.

Lean code for Lemma8.1.8●1 theorem
  • complete
    theorem VirasoroProject.commutator_sugawaraGen_heiPairNO'.{u_1, u_2}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc : ∀ (v : V), ∀ᶠ (l : ℤ) in Filter.atTop, (heiOper l) v = 0)
      (heiComm :
        ∀ (k l : ℤ),
          (heiOper k).commutator (heiOper l) =
            if k + l = 0 then ↑k • 1 else 0)
      [CharZero 𝕜] (n m k : ℤ) :
      (VirasoroProject.sugawaraGen heiTrunc n).commutator
          (VirasoroProject.pairNO' heiOper (m - k) k) =
        -↑k • VirasoroProject.pairNO' heiOper (m - k) (n + k) +
            -(↑m - ↑k) • VirasoroProject.pairNO' heiOper (n + m - k) k +
          (if n + m = 0 then
              ↑k * (↑n + ↑k) *
                ((if k + n ≤ 0 then 1 else 0) - if k ≤ 0 then 1 else 0)
            else 0) •
            1
    theorem VirasoroProject.commutator_sugawaraGen_heiPairNO'.{u_1,
        u_2}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2}
      [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc :
        ∀ (v : V),
          ∀ᶠ (l : ℤ) in Filter.atTop,
            (heiOper l) v = 0)
      (heiComm :
        ∀ (k l : ℤ),
          (heiOper k).commutator (heiOper l) =
            if k + l = 0 then ↑k • 1 else 0)
      [CharZero 𝕜] (n m k : ℤ) :
      (VirasoroProject.sugawaraGen heiTrunc
              n).commutator
          (VirasoroProject.pairNO' heiOper
            (m - k) k) =
        -↑k •
              VirasoroProject.pairNO' heiOper
                (m - k) (n + k) +
            -(↑m - ↑k) •
              VirasoroProject.pairNO' heiOper
                (n + m - k) k +
          (if n + m = 0 then
              ↑k * (↑n + ↑k) *
                ((if k + n ≤ 0 then 1
                  else 0) -
                  if k ≤ 0 then 1 else 0)
            else 0) •
            1
    `[L n, :J (m-k) J k:'] = -k • :J (m-k) J (n+k):' - (m-k) • :J (n+m-k) J k:' + bdry • 1`,
    where the boundary coefficient `bdry = k (n+k) (δ[k+n≤0] - δ[k≤0])` is present only if
    `n + m = 0`. 
Proof for Lemma 8.1.8
Proof uses 2
Proof dependency previews
Preview
Lemma 8.1.2
Loading preview
Proof dependency preview content is loaded from the rendered-fragment cache.

Calculation: by the alternative normal ordering (Lemma 8.1.2) and the commutation relations \tagHeiComm{}, the normal ordered product differs from the plain product \Joper_k \, \Joper_{m-k} by an explicit multiple of \id_V, which is central. The commutator with the plain product is evaluated using Lemma 8.1.7 and the commutator formula [A,BC] = B[A,C] + [A,B]C; converting the plain products back to normal ordered products (again up to explicit multiples of \id_V) yields the asserted boundary terms.

Lemma8.1.9
uses 0used by 1✓L∃∀N

Auxiliary calculation. For any n \in \bN, we have

\begin{aligned} \sum_{l=0}^{n-1} (n-l) l = \frac{n^3 - n}{6} . \end{aligned}

Lean code for Lemma8.1.9●1 theorem
  • complete
    theorem VirasoroProject.bosonic_sugawara_cc_calc_nonneg (n : ℕ) :
      ∑ l ∈ Finset.range n, ↑l * (↑n - ↑l) = (↑n ^ 3 - ↑n) / 6
    theorem VirasoroProject.bosonic_sugawara_cc_calc_nonneg
      (n : ℕ) :
      ∑ l ∈ Finset.range n, ↑l * (↑n - ↑l) =
        (↑n ^ 3 - ↑n) / 6
    The elementary sum `∑_{l=0}^{n-1} l (n - l) = (n³ - n) / 6` for `n ∈ ℕ`, evaluated in `ℚ`.
    
    (This form of the central charge computation of the basic bosonic Sugawara construction is
    referenced in the blueprint; the Lean proof of `VirasoroProject.commutator_sugawaraGen` uses
    the more general `VirasoroProject.sum_Ico_quadratic` directly.) 
Proof for Lemma 8.1.9
uses 0

Calculation (with induction).

Lemma8.1.10
uses 1used by 1✓L∃∀N

Virasoro commutation relations for Sugawara operators. Suppose that (\Joper_{k})_{k \in \bZ} satisfy the commutation relations \tagHeiComm{} and the local truncation condition \tagHeiTrunc{}. Then for any n, m \in \bZ, we have

\begin{aligned} [\Loper_n, \Loper_m] = \; & (n-m) \, \Loper_{n+m} + \delta_{n+m,0} \frac{n^3 - n}{12} \, \id_V . \end{aligned}

Lean code for Lemma8.1.10●1 theorem
  • complete
    theorem VirasoroProject.commutator_sugawaraGen.{u_1, u_2} {𝕜 : Type u_1}
      [Field 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc : ∀ (v : V), ∀ᶠ (l : ℤ) in Filter.atTop, (heiOper l) v = 0)
      (heiComm :
        ∀ (k l : ℤ),
          (heiOper k).commutator (heiOper l) =
            if k + l = 0 then ↑k • 1 else 0)
      [CharZero 𝕜] (n m : ℤ) :
      (VirasoroProject.sugawaraGen heiTrunc n).commutator
          (VirasoroProject.sugawaraGen heiTrunc m) =
        (↑n - ↑m) • VirasoroProject.sugawaraGen heiTrunc (n + m) +
          if n + m = 0 then ((↑n ^ 3 - ↑n) / 12) • 1 else 0
    theorem VirasoroProject.commutator_sugawaraGen.{u_1,
        u_2}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2}
      [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc :
        ∀ (v : V),
          ∀ᶠ (l : ℤ) in Filter.atTop,
            (heiOper l) v = 0)
      (heiComm :
        ∀ (k l : ℤ),
          (heiOper k).commutator (heiOper l) =
            if k + l = 0 then ↑k • 1 else 0)
      [CharZero 𝕜] (n m : ℤ) :
      (VirasoroProject.sugawaraGen heiTrunc
              n).commutator
          (VirasoroProject.sugawaraGen
            heiTrunc m) =
        (↑n - ↑m) •
            VirasoroProject.sugawaraGen
              heiTrunc (n + m) +
          if n + m = 0 then
            ((↑n ^ 3 - ↑n) / 12) • 1
          else 0
    **The Virasoro commutation relations for the bosonic Sugawara operators**:
    `[L(n), L(m)] = (n-m) • L(n+m) + δ[n+m=0] (n³-n)/12 • 1`. 
Proof for Lemma 8.1.10
Proof uses 2
Proof dependency previews
Preview
Lemma 8.1.8
Loading preview
Proof dependency preview content is loaded from the rendered-fragment cache.

Calculation, using Lemma 8.1.8 and Lemma 8.1.9, among other observations.

Theorem8.1.11
Statement uses 2
Statement dependency previews
Preview
Definition 5.2
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

Sugawara construction. Suppose that (\Joper_{k})_{k \in \bZ} satisfy the commutation relations \tagHeiComm{} and the local truncation condition \tagHeiTrunc{}. Then there exists a representation of the Virasoro algebra \vir with central charge c = 1 on V (i.e., the central element C \in \vir acts as c \, \id_V with c = 1) where the basis elements L_n of \vir act by the Sugawara operators (\Loper_n)_{n \in \bZ}.

Lean code for Theorem8.1.11●1 definition
  • complete
    def VirasoroProject.sugawaraRepresentation.{u_1, u_2} {𝕜 : Type u_1}
      [Field 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc : ∀ (v : V), ∀ᶠ (l : ℤ) in Filter.atTop, (heiOper l) v = 0)
      (heiComm :
        ∀ (k l : ℤ),
          (heiOper k).commutator (heiOper l) =
            if k + l = 0 then ↑k • 1 else 0)
      [CharZero 𝕜] : VirasoroProject.VirasoroAlgebra 𝕜 →ₗ⁅𝕜⁆ V →ₗ[𝕜] V
    def VirasoroProject.sugawaraRepresentation.{u_1,
        u_2}
      {𝕜 : Type u_1} [Field 𝕜] {V : Type u_2}
      [AddCommGroup V] [Module 𝕜 V]
      {heiOper : ℤ → V →ₗ[𝕜] V}
      (heiTrunc :
        ∀ (v : V),
          ∀ᶠ (l : ℤ) in Filter.atTop,
            (heiOper l) v = 0)
      (heiComm :
        ∀ (k l : ℤ),
          (heiOper k).commutator (heiOper l) =
            if k + l = 0 then ↑k • 1 else 0)
      [CharZero 𝕜] :
      VirasoroProject.VirasoroAlgebra 𝕜 →ₗ⁅𝕜⁆
        V →ₗ[𝕜] V
    **The basic bosonic Sugawara representation of Virasoro algebra (c=1)**:
    On a vector space with a representation of the Heisenberg algebra that acts locally truncatedly,
    we get a representation of the Virasoro algebra with central charge 1 by the Sugawara
    construction. 
Proof for Theorem 8.1.11

A direct consequence of the commutation relations in Lemma 8.1.10 and a comparison with the Lie brackets in the basis of Definition 5.2.