Central charge calculations for Sugawara constructions #
This file contains the crucial auxiliary calculations leading to the values of the central charge
in various Sugawara constructions. The calculations make use of "discrete integration" on ℤ.
Main definitions #
zPrimitive: A "discrete integral function" to a given functionf : ℤ → R. The defining properties ofF = zPrimitive fareF(0) = 0andF(n+1) - F(n) = f(n).zMonomialF: Thedth discrete monomial function is defined byd-fold discrete integration starting from the function1. (The continuum analogue is the monomial1/d! • x^d.)
Main statements #
zMonomialF_eqThedth discrete monomial function is given byn ↦ 1/d! • ∏ j (0 ≤ j < d), (n - j)bosonic_sugawara_cc_calc: For anyn ∈ ℤ, we havezPrimitive (fun l ↦ (l : R) * (n - l)) n = (n^3 - n) / 6.bosonic_sugawara_cc_calc_nonneg: For anyn ∈ ℕ, we have∑ l (0 ≤ l < n), (l : ℚ) * (n - l) = (n^3 - n) / 6.
TODO #
- TODO: Add variants of the calculation for fermionic Sugawara constructions etc.
Tags #
central charge, Sugawara construction
A discrete integral of a function on ℤ.
Equations
- VirasoroProject.zPrimitive f n = if 0 ≤ n then ∑ j ∈ Finset.range n.toNat, f ↑j else -∑ j ∈ Finset.range n.natAbs, f (-↑j - 1)
Instances For
@[simp]
@[simp]
theorem
VirasoroProject.zPrimitive_apply_of_nonneg
{R : Type u_1}
[AddCommGroup R]
(f : ℤ → R)
{n : ℤ}
(hn : 0 ≤ n)
:
@[simp]
theorem
VirasoroProject.zPrimitive_apply_of_nonpos
{R : Type u_1}
[AddCommGroup R]
(f : ℤ → R)
{n : ℤ}
(hn : n ≤ 0)
:
@[simp]
theorem
VirasoroProject.eq_zPrimitive_of_eq_zero_of_forall_eq_add
{R : Type u_1}
[AddCommGroup R]
{f F : ℤ → R}
(h0 : F 0 = 0)
(h1 : ∀ (n : ℤ), F (n + 1) = F n + f n)
:
theorem
VirasoroProject.zPrimitive_smul
{R : Type u_1}
{S : Type u_2}
[AddCommGroup R]
[DistribSMul S R]
(c : S)
(f : ℤ → R)
:
A discrete monomial function of degree d, obtained recursively by starting from the
unit function 1 and taking the discrete primitive d times.
(Note: The resulting normalization is such that this monomial approximately x ↦ 1/d! * x^d.)
Equations
- VirasoroProject.zMonomialF R 0 = fun (x : ℤ) => 1
- VirasoroProject.zMonomialF R d_2.succ = VirasoroProject.zPrimitive (VirasoroProject.zMonomialF R d_2)