Prove2Me
Navigate
DiscoverCollectionsFormalpediaGalaxyBlogsUsersMomentumMy Missions+
Prove2Me
Log in
← Formalpedia

Block decompositions of finite-dimensional von Neumann algebras and algebraic (relative) entropy (Harlow TASI §5.3)

Definition
HarlowTASI_OperatorAlgebras

by Lucas · Oct 9, 2026 · Mathlib 0df444a (Lean v4.33.1)

holographyoperator-algebrasquantum-error-correctionquantum-information

Vocabulary of §5.3 of Harlow's lectures: von Neumann algebras on a finite-dimensional Hilbert space, their block decomposition, and the algebraic entropy and relative entropy of a state on such an algebra.

A von Neumann algebra on H=CC\mathcal H=\mathbb C^{C}H=CC (Definition 5.3: closed under products, sums and adjoints, and containing every λI\lambda IλI) is a ∗*∗-subalgebra MMM of the C×CC\times CC×C complex matrices; its commutant M′M'M′ (Definition 5.4) is the set of matrices commuting with all of MMM, and its center is ZM=M∩M′Z_M=M\cap M'ZM​=M∩M′ (Definition 5.5).

A block decomposition H≅⨁α(Hrα⊗Hr‾α)\mathcal H\cong\bigoplus_{\alpha}\big(\mathcal H_{r_\alpha}\otimes\mathcal H_{\overline r_\alpha}\big)H≅⨁α​(Hrα​​⊗Hrα​​), eq. (5.12), is encoded by a number NNN of blocks, dimensions drα,dr‾αd_{r_\alpha},d_{\overline r_\alpha}drα​​,drα​​, and a unitary U:H→⨁αCdrα⊗Cdr‾αU:\mathcal H\to\bigoplus_\alpha\mathbb C^{d_{r_\alpha}}\otimes\mathbb C^{d_{\overline r_\alpha}}U:H→⨁α​Cdrα​​⊗Cdrα​​. Transported back by UUU we get the three sets of eq. (5.13):

⨁αL(Hrα)⊗Ir‾α,⨁αIrα⊗L(Hr‾α),⨁αλαIrαr‾α.\textstyle\bigoplus_\alpha\mathcal L(\mathcal H_{r_\alpha})\otimes I_{\overline r_\alpha},\qquad \bigoplus_\alpha I_{r_\alpha}\otimes\mathcal L(\mathcal H_{\overline r_\alpha}),\qquad \bigoplus_\alpha\lambda_\alpha I_{r_\alpha\overline r_\alpha}.⨁α​L(Hrα​​)⊗Irα​​,⨁α​Irα​​⊗L(Hrα​​),⨁α​λα​Irα​rα​​.

For a state ρ\rhoρ on H\mathcal HH, write the diagonal blocks of UρU†U\rho U^\daggerUρU† as pαρrαr‾αp_\alpha\rho_{r_\alpha\overline r_\alpha}pα​ρrα​rα​​ with pα=Trp_\alpha=\mathrm{Tr}pα​=Tr of the block, eq. (5.15), and set ρrα=Trr‾αρrαr‾α\rho_{r_\alpha}=\mathrm{Tr}_{\overline r_\alpha}\rho_{r_\alpha\overline r_\alpha}ρrα​​=Trrα​​ρrα​rα​​, ρr‾α=Trrαρrαr‾α\rho_{\overline r_\alpha}=\mathrm{Tr}_{r_\alpha}\rho_{r_\alpha\overline r_\alpha}ρrα​​=Trrα​​ρrα​rα​​. For M=⨁αL(Hrα)⊗Ir‾αM=\bigoplus_\alpha\mathcal L(\mathcal H_{r_\alpha})\otimes I_{\overline r_\alpha}M=⨁α​L(Hrα​​)⊗Irα​​ the algebraic entropy (5.16) and algebraic relative entropy (5.18) are

S(ρ,M)=−∑αpαlog⁡pα+∑αpαS(ρrα),S(ρ∣σ,M)=∑αpα{ρ}log⁡pα{ρ}pα{σ}+∑αpα{ρ}S(ρrα∣σrα),S(\rho,M)=-\sum_\alpha p_\alpha\log p_\alpha+\sum_\alpha p_\alpha S(\rho_{r_\alpha}),\qquad S(\rho|\sigma,M)=\sum_\alpha p^{\{\rho\}}_\alpha\log\frac{p^{\{\rho\}}_\alpha}{p^{\{\sigma\}}_\alpha}+\sum_\alpha p^{\{\rho\}}_\alpha S(\rho_{r_\alpha}|\sigma_{r_\alpha}),S(ρ,M)=−α∑​pα​logpα​+α∑​pα​S(ρrα​​),S(ρ∣σ,M)=α∑​pα{ρ}​logpα{σ}​pα{ρ}​​+α∑​pα{ρ}​S(ρrα​​∣σrα​​),

and the same formulas with r‾α\overline r_\alpharα​ in place of rαr_\alpharα​ give S(ρ,M′)S(\rho,M')S(ρ,M′) and S(ρ∣σ,M′)S(\rho|\sigma,M')S(ρ∣σ,M′).

These definitions are the language of Theorem 5.1 and of the entanglement wedge reconstruction theorem (Theorem 5.2).

Formalization Note Blocks are indexed by Fin N with block dimensions given by functions Fin N → ℕ. When pα=0p_\alpha=0pα​=0 the normalized block state is the zero matrix and contributes nothing. The classical term plog⁡(p/q)p\log(p/q)plog(p/q) is 000 for p=0p=0p=0 and +∞+\infty+∞ for p≠0=qp\neq0=qp=0=q; relative entropies are valued in EReal. The entropies are defined relative to a chosen block decomposition UUU; since the value does not depend on the choice, every statement using them quantifies over an arbitrary decomposition realizing the given algebra.

Definition code
import Mathlib
import Definitions.Def_HarlowTASI_QuantumBasics

/-!
# Harlow, TASI Lectures — von Neumann algebras on finite-dimensional spaces and their entropies

A von Neumann algebra on the finite-dimensional space `ℂ^C` in the sense of Definition 5.3
(closed under products, sums, adjoints, and containing all `λ I`) is a
`StarSubalgebra ℂ (Matrix C C ℂ)`; its commutant `M'` (Definition 5.4) is
`StarSubalgebra.centralizer ℂ M` and its center `Z_M = M ∩ M'` (Definition 5.5) is
`M ⊓ StarSubalgebra.centralizer ℂ M`.

A block decomposition (5.12) `H = ⊕_α (H_{r_α} ⊗ H_{r̄_α})` is encoded by a number `N` of
blocks, block dimensions `dr α = dim H_{r_α}`, `drb α = dim H_{r̄_α}`, and a unitary
`U : H → ⊕_α (ℂ^{dr α} ⊗ ℂ^{drb α})`. The algebraic entropies (5.16) and (5.18) are computed
from the diagonal blocks (5.15) of a state in such a decomposition.
-/

namespace HarlowTASI

open Matrix
open scoped Kronecker ComplexOrder

noncomputable section

/-- Index type of `⊕_{α < N} (ℂ^{dr α} ⊗ ℂ^{drb α})`. -/
abbrev BlockIndex (N : ℕ) (dr drb : Fin N → ℕ) : Type :=
  Σ a : Fin N, Fin (dr a) × Fin (drb a)

variable {N : ℕ} {dr drb : Fin N → ℕ}

/-- The block-diagonal operator `⊕_α (x_α ⊗ I_{r̄_α})`. -/
def blockLeftOp (x : ∀ a, Matrix (Fin (dr a)) (Fin (dr a)) ℂ) :
    Matrix (BlockIndex N dr drb) (BlockIndex N dr drb) ℂ :=
  blockDiagonal' fun a => x a ⊗ₖ (1 : Matrix (Fin (drb a)) (Fin (drb a)) ℂ)

/-- The block-diagonal operator `⊕_α (I_{r_α} ⊗ y_α)`. -/
def blockRightOp (y : ∀ a, Matrix (Fin (drb a)) (Fin (drb a)) ℂ) :
    Matrix (BlockIndex N dr drb) (BlockIndex N dr drb) ℂ :=
  blockDiagonal' fun a => (1 : Matrix (Fin (dr a)) (Fin (dr a)) ℂ) ⊗ₖ y a

/-- The block-diagonal operator `⊕_α λ_α I_{r_α r̄_α}`. -/
def blockScalarOp (c : Fin N → ℂ) : Matrix (BlockIndex N dr drb) (BlockIndex N dr drb) ℂ :=
  blockDiagonal' fun a => c a • (1 : Matrix (Fin (dr a) × Fin (drb a)) (Fin (dr a) × Fin (drb a)) ℂ)

variable {C : Type} [Fintype C] [DecidableEq C]

/-- `⊕_α L(H_{r_α}) ⊗ I_{r̄_α}`, transported to `ℂ^C` by the unitary `U`:
the set of all `U† (⊕_α x_α ⊗ I) U`. -/
def blockAlgebraLeft (U : Matrix (BlockIndex N dr drb) C ℂ) : Set (Matrix C C ℂ) :=
  {X | ∃ x : ∀ a, Matrix (Fin (dr a)) (Fin (dr a)) ℂ, X = Uᴴ * blockLeftOp (drb := drb) x * U}

/-- `⊕_α I_{r_α} ⊗ L(H_{r̄_α})`, transported to `ℂ^C` by `U`. -/
def blockAlgebraRight (U : Matrix (BlockIndex N dr drb) C ℂ) : Set (Matrix C C ℂ) :=
  {X | ∃ y : ∀ a, Matrix (Fin (drb a)) (Fin (drb a)) ℂ, X = Uᴴ * blockRightOp (dr := dr) y * U}

/-- `⊕_α λ_α I_{r_α r̄_α}`, transported to `ℂ^C` by `U`. -/
def blockAlgebraCenter (U : Matrix (BlockIndex N dr drb) C ℂ) : Set (Matrix C C ℂ) :=
  {X | ∃ c : Fin N → ℂ, X = Uᴴ * blockScalarOp (dr := dr) (drb := drb) c * U}

/-- The diagonal block `ρ_{r_α r̄_α, r_α r̄_α}` (unnormalized, i.e. `p_α ρ_{r_α r̄_α}` in (5.15))
of the operator `U ρ U†`. -/
def diagBlock (U : Matrix (BlockIndex N dr drb) C ℂ) (ρ : Matrix C C ℂ) (a : Fin N) :
    Matrix (Fin (dr a) × Fin (drb a)) (Fin (dr a) × Fin (drb a)) ℂ :=
  (U * ρ * Uᴴ).submatrix
    (Sigma.mk (β := fun b => Fin (dr b) × Fin (drb b)) a)
    (Sigma.mk (β := fun b => Fin (dr b) × Fin (drb b)) a)

/-- The block probability `p_α = Tr (diagonal block α)` (real part). -/
def blockWeight (U : Matrix (BlockIndex N dr drb) C ℂ) (ρ : Matrix C C ℂ) (a : Fin N) : ℝ :=
  (diagBlock U ρ a).trace.re

/-- `ρ_{r_α} = Tr_{r̄_α} ρ_{r_α r̄_α}` with `ρ_{r_α r̄_α} = p_α⁻¹ · (diagonal block α)`
(the zero matrix when `p_α = 0`). -/
def blockStateLeft (U : Matrix (BlockIndex N dr drb) C ℂ) (ρ : Matrix C C ℂ) (a : Fin N) :
    Matrix (Fin (dr a)) (Fin (dr a)) ℂ :=
  ((blockWeight U ρ a : ℂ))⁻¹ • traceRight (diagBlock U ρ a)

/-- `ρ_{r̄_α} = Tr_{r_α} ρ_{r_α r̄_α}` (the zero matrix when `p_α = 0`). -/
def blockStateRight (U : Matrix (BlockIndex N dr drb) C ℂ) (ρ : Matrix C C ℂ) (a : Fin N) :
    Matrix (Fin (drb a)) (Fin (drb a)) ℂ :=
  ((blockWeight U ρ a : ℂ))⁻¹ • traceLeft (diagBlock U ρ a)

/-- Algebraic entropy (5.16) of `ρ` on `M = U† (⊕_α L(H_{r_α}) ⊗ I) U`:
`S(ρ, M) = -∑_α p_α log p_α + ∑_α p_α S(ρ_{r_α})`. -/
def algebraicEntropyLeft (U : Matrix (BlockIndex N dr drb) C ℂ) (ρ : Matrix C C ℂ) : ℝ :=
  ∑ a, Real.negMulLog (blockWeight U ρ a) +
    ∑ a, blockWeight U ρ a * vonNeumannEntropy (blockStateLeft U ρ a)

/-- Algebraic entropy of `ρ` on the commutant `M' = U† (⊕_α I ⊗ L(H_{r̄_α})) U`:
`S(ρ, M') = -∑_α p_α log p_α + ∑_α p_α S(ρ_{r̄_α})`. -/
def algebraicEntropyRight (U : Matrix (BlockIndex N dr drb) C ℂ) (ρ : Matrix C C ℂ) : ℝ :=
  ∑ a, Real.negMulLog (blockWeight U ρ a) +
    ∑ a, blockWeight U ρ a * vonNeumannEntropy (blockStateRight U ρ a)

/-- The classical term `p log (p / q)` of (5.18) in the extended reals:
`0` if `p = 0`, `+∞` if `p ≠ 0 = q`, and `p log (p/q)` otherwise. -/
def classicalRelTerm (p q : ℝ) : EReal :=
  if p = 0 then 0 else if q = 0 then ⊤ else ((p * Real.log (p / q) : ℝ) : EReal)

/-- Algebraic relative entropy (5.18) on `M = U† (⊕_α L(H_{r_α}) ⊗ I) U`:
`S(ρ|σ, M) = ∑_α p_α^ρ log (p_α^ρ / p_α^σ) + ∑_α p_α^ρ S(ρ_{r_α} | σ_{r_α})`. -/
def algebraicRelEntropyLeft (U : Matrix (BlockIndex N dr drb) C ℂ) (ρ σ : Matrix C C ℂ) :
    EReal :=
  ∑ a, classicalRelTerm (blockWeight U ρ a) (blockWeight U σ a) +
    ∑ a, ((blockWeight U ρ a : ℝ) : EReal) *
      relativeEntropy (blockStateLeft U ρ a) (blockStateLeft U σ a)

/-- Algebraic relative entropy on the commutant `M' = U† (⊕_α I ⊗ L(H_{r̄_α})) U`. -/
def algebraicRelEntropyRight (U : Matrix (BlockIndex N dr drb) C ℂ) (ρ σ : Matrix C C ℂ) :
    EReal :=
  ∑ a, classicalRelTerm (blockWeight U ρ a) (blockWeight U σ a) +
    ∑ a, ((blockWeight U ρ a : ℝ) : EReal) *
      relativeEntropy (blockStateRight U ρ a) (blockStateRight U σ a)

end

end HarlowTASI
Source
Daniel Harlow, TASI Lectures on the Emergence of Bulk Physics in AdS/CFT, PoS(TASI2017)002 (2018), arXiv:1802.01040, §5.3 (pp. 43–45): Definitions 5.3–5.5, eqs. (5.12)–(5.13) of Theorem 5.1, eqs. (5.15), (5.16), (5.18).
Read-back

What the Lean code literally says, in plain math · Aristotle (Harmonic) - NON-BLIND: same agent that drafted the statements

Non-blind read-back — not independent testimony. This read-back was written by the same agent (Aristotle, by Harmonic) that drafted the Lean statements, with full knowledge of the source lectures and of the intended meaning. It was not produced blind by an independent auditor, so it must not be mistaken for independent testimony; reviewers should treat it as the drafter's own rendering of the code and check the Lean text directly.

This file builds on the basic quantum definitions (partial traces Trr‾,Trr\mathrm{Tr}_{\overline r},\mathrm{Tr}_rTrr​,Trr​, entropy S(⋅)S(\cdot)S(⋅), relative entropy S(⋅∣⋅)S(\cdot|\cdot)S(⋅∣⋅) as defined there). Fix N∈NN\in\mathbb NN∈N and functions dr,dr‾:{0,…,N−1}→Nd_r,d_{\overline r}:\{0,\dots,N-1\}\to\mathbb Ndr​,dr​:{0,…,N−1}→N.

  • Block index set. B={(α,i,j):α<N, i<dr(α), j<dr‾(α)}\mathcal B=\{(\alpha,i,j):\alpha<N,\ i<d_r(\alpha),\ j<d_{\overline r}(\alpha)\}B={(α,i,j):α<N, i<dr​(α), j<dr​(α)}; matrices indexed by B\mathcal BB are operators on ⨁αCdr(α)⊗Cdr‾(α)\bigoplus_\alpha\mathbb C^{d_r(\alpha)}\otimes\mathbb C^{d_{\overline r}(\alpha)}⨁α​Cdr​(α)⊗Cdr​(α).
  • Block operators. Given matrices xαx_\alphaxα​ of size dr(α)d_r(\alpha)dr​(α): L(x)=⨁α(xα⊗Idr‾(α))\mathrm{L}(x)=\bigoplus_\alpha (x_\alpha\otimes I_{d_{\overline r}(\alpha)})L(x)=⨁α​(xα​⊗Idr​(α)​) (block diagonal, zero off the diagonal blocks). Given yαy_\alphayα​ of size dr‾(α)d_{\overline r}(\alpha)dr​(α): R(y)=⨁α(Idr(α)⊗yα)\mathrm{R}(y)=\bigoplus_\alpha(I_{d_r(\alpha)}\otimes y_\alpha)R(y)=⨁α​(Idr​(α)​⊗yα​). Given scalars cα∈Cc_\alpha\in\mathbb Ccα​∈C: Z(c)=⨁αcαI\mathrm{Z}(c)=\bigoplus_\alpha c_\alpha IZ(c)=⨁α​cα​I.
  • Transported sets. For a finite set CCC and a matrix UUU with rows indexed by B\mathcal BB and columns by CCC (no unitarity is assumed in these definitions): AL(U)={U†L(x)U}\mathcal A_L(U)=\{U^\dagger\mathrm L(x)U\}AL​(U)={U†L(x)U}, AR(U)={U†R(y)U}\mathcal A_R(U)=\{U^\dagger\mathrm R(y)U\}AR​(U)={U†R(y)U}, AZ(U)={U†Z(c)U}\mathcal A_Z(U)=\{U^\dagger\mathrm Z(c)U\}AZ​(U)={U†Z(c)U}, each ranging over all choices of xxx, yyy, ccc respectively; these are sets of C×CC\times CC×C matrices.
  • Diagonal block and weight. For a C×CC\times CC×C matrix ρ\rhoρ and α<N\alpha<Nα<N: Bα(ρ)B_\alpha(\rho)Bα​(ρ) is the (α,α)(\alpha,\alpha)(α,α) diagonal block of UρU†U\rho U^\daggerUρU† (a matrix indexed by pairs (i,j)(i,j)(i,j)), and pα(ρ)=Re⁡Tr Bα(ρ)p_\alpha(\rho)=\operatorname{Re}\mathrm{Tr}\,B_\alpha(\rho)pα​(ρ)=ReTrBα​(ρ).
  • Block states. ρrα=pα(ρ)−1 Trr‾Bα(ρ)\rho_{r_\alpha}=p_\alpha(\rho)^{-1}\,\mathrm{Tr}_{\overline r}B_\alpha(\rho)ρrα​​=pα​(ρ)−1Trr​Bα​(ρ) and ρr‾α=pα(ρ)−1 TrrBα(ρ)\rho_{\overline r_\alpha}=p_\alpha(\rho)^{-1}\,\mathrm{Tr}_{r}B_\alpha(\rho)ρrα​​=pα​(ρ)−1Trr​Bα​(ρ), with the convention 0−1=00^{-1}=00−1=0 (so they are the zero matrix when pα(ρ)=0p_\alpha(\rho)=0pα​(ρ)=0).
  • Algebraic entropies (real numbers).
SL(ρ)=∑α(−pαlog⁡pα)+∑αpα S(ρrα),SR(ρ)=∑α(−pαlog⁡pα)+∑αpα S(ρr‾α),S_L(\rho)=\sum_\alpha\big(-p_\alpha\log p_\alpha\big)+\sum_\alpha p_\alpha\,S(\rho_{r_\alpha}),\qquad S_R(\rho)=\sum_\alpha\big(-p_\alpha\log p_\alpha\big)+\sum_\alpha p_\alpha\,S(\rho_{\overline r_\alpha}),SL​(ρ)=α∑​(−pα​logpα​)+α∑​pα​S(ρrα​​),SR​(ρ)=α∑​(−pα​logpα​)+α∑​pα​S(ρrα​​),

with pα=pα(ρ)p_\alpha=p_\alpha(\rho)pα​=pα​(ρ) and −0log⁡0=0-0\log0=0−0log0=0.

  • Classical term (extended real). c(p,q)=0c(p,q)=0c(p,q)=0 if p=0p=0p=0; =+∞=+\infty=+∞ if p≠0p\neq0p=0 and q=0q=0q=0; =plog⁡(p/q)=p\log(p/q)=plog(p/q) otherwise.
  • Algebraic relative entropies (extended reals).
SL(ρ∣σ)=∑αc(pα(ρ),pα(σ))+∑αpα(ρ)⋅S(ρrα∣σrα),S_L(\rho|\sigma)=\sum_\alpha c\big(p_\alpha(\rho),p_\alpha(\sigma)\big)+\sum_\alpha p_\alpha(\rho)\cdot S(\rho_{r_\alpha}|\sigma_{r_\alpha}),SL​(ρ∣σ)=α∑​c(pα​(ρ),pα​(σ))+α∑​pα​(ρ)⋅S(ρrα​​∣σrα​​),

and SR(ρ∣σ)S_R(\rho|\sigma)SR​(ρ∣σ) the same with ρr‾α,σr‾α\rho_{\overline r_\alpha},\sigma_{\overline r_\alpha}ρrα​​,σrα​​; here the product of the real number pα(ρ)p_\alpha(\rho)pα​(ρ) with an extended real uses extended-real multiplication (in particular 0⋅(+∞)=00\cdot(+\infty)=00⋅(+∞)=0).

The file also records, in its header comment only, the convention that a von Neumann algebra on CC\mathbb C^CCC is a ∗*∗-subalgebra (containing the scalars) of the C×CC\times CC×C complex matrices, with commutant the centralizer and center the intersection; these are library notions, not new definitions.

Human review
  • Endorsed by Shuze Chen · Oct 10, 2026

    Confirmed by the moderator at approval.

  • Endorsed by Lucas · Oct 10, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paperProve2Me Team
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me