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}
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
Associated Lean declarations
-
VirasoroProject.pairNO[complete]
-
VirasoroProject.pairNO[complete]
-
defdefined in VirasoroProject/Sugawara.leancomplete
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.
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
Associated Lean declarations
-
theoremdefined in VirasoroProject/Sugawara.leancomplete
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.
Straightforward using the commutation relations \tagHeiComm{}.
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
Associated Lean declarations
-
VirasoroProject.pairNO_apply_eq_zero[complete]
-
VirasoroProject.pairNO_apply_eq_zero[complete]
-
theoremdefined in VirasoroProject/Sugawara.leancomplete
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
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.
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
Associated Lean declarations
-
theoremdefined in VirasoroProject/Sugawara.leancomplete
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`.
Straightforward from Lemma 8.1.3.
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
Associated Lean declarations
-
VirasoroProject.sugawaraGen[complete]
-
VirasoroProject.sugawaraGen[complete]
-
defdefined in VirasoroProject/Sugawara.leancomplete
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).
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
Associated Lean declarations
-
theoremdefined in VirasoroProject/Sugawara.leancomplete
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.
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.
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
Associated Lean declarations
-
theoremdefined in VirasoroProject/Sugawara.leancomplete
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)`
Calculation, using Lemma 8.1.6 and
the commutator formula [A,BC] = B[A,C] + [A,B]C.
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
Associated Lean declarations
-
theoremdefined in VirasoroProject/Sugawara.leancomplete
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`.
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.
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
Associated Lean declarations
-
theoremdefined in VirasoroProject/CentralChargeCalc.leancomplete
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.)
Calculation (with induction).
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
Associated Lean declarations
-
VirasoroProject.commutator_sugawaraGen[complete]
-
VirasoroProject.commutator_sugawaraGen[complete]
-
theoremdefined in VirasoroProject/Sugawara.leancomplete
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`.
Calculation, using Lemma 8.1.8 and Lemma 8.1.9, among other observations.
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
Associated Lean declarations
-
VirasoroProject.sugawaraRepresentation[complete]
-
VirasoroProject.sugawaraRepresentation[complete]
-
defdefined in VirasoroProject/Sugawara.leancomplete
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.
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.