Block decompositions of finite-dimensional von Neumann algebras and algebraic (relative) entropy (Harlow TASI §5.3)
DefinitionHarlowTASI_OperatorAlgebrasVocabulary 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 (Definition 5.3: closed under products, sums and adjoints, and containing every ) is a -subalgebra of the complex matrices; its commutant (Definition 5.4) is the set of matrices commuting with all of , and its center is (Definition 5.5).
A block decomposition , eq. (5.12), is encoded by a number of blocks, dimensions , and a unitary . Transported back by we get the three sets of eq. (5.13):
For a state on , write the diagonal blocks of as with of the block, eq. (5.15), and set , . For the algebraic entropy (5.16) and algebraic relative entropy (5.18) are
and the same formulas with in place of give and .
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 the normalized block state is the zero matrix and contributes nothing. The classical term is for and for ; relative entropies are valued in EReal. The entropies are defined relative to a chosen block decomposition ; since the value does not depend on the choice, every statement using them quantifies over an arbitrary decomposition realizing the given algebra.
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
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 , entropy , relative entropy as defined there). Fix and functions .
- Block index set. ; matrices indexed by are operators on .
- Block operators. Given matrices of size : (block diagonal, zero off the diagonal blocks). Given of size : . Given scalars : .
- Transported sets. For a finite set and a matrix with rows indexed by and columns by (no unitarity is assumed in these definitions): , , , each ranging over all choices of , , respectively; these are sets of matrices.
- Diagonal block and weight. For a matrix and : is the diagonal block of (a matrix indexed by pairs ), and .
- Block states. and , with the convention (so they are the zero matrix when ).
- Algebraic entropies (real numbers).
with and .
- Classical term (extended real). if ; if and ; otherwise.
- Algebraic relative entropies (extended reals).
and the same with ; here the product of the real number with an extended real uses extended-real multiplication (in particular ).
The file also records, in its header comment only, the convention that a von Neumann algebra on is a -subalgebra (containing the scalars) of the complex matrices, with commutant the centralizer and center the intersection; these are library notions, not new definitions.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.