Skip to content

Strong subadditivity of von Neumann entropy#14

Merged
kencyke merged 35 commits into
mainfrom
6-von-neumann-entropy
Apr 30, 2026
Merged

Strong subadditivity of von Neumann entropy#14
kencyke merged 35 commits into
mainfrom
6-von-neumann-entropy

Conversation

@kencyke

@kencyke kencyke commented Apr 30, 2026

Copy link
Copy Markdown
Owner

fix #6

kencyke and others added 30 commits April 23, 2026 16:17
Mark `tensor_toLinearMap`, `tensor_tmul`, `tensor_one`, `tensor_mul`,
`tensor_add_left`, `tensor_add_right` as `private` and drop the now-unused
`Topology.Algebra.Module.FiniteDimension` and `RingTheory.TensorProduct.Finite`
imports.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Add `Complex.zero_le_ofReal`, `zero_le_one_sub_ofReal`, and
`zero_le_natCast_inv` together with the `Mathlib.Analysis.Complex.Order`
import. Used by spectral / density-matrix calculations that need
`(0 : ℂ) ≤ (ε : ℂ)` for a real witness.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
…ty preservation

Add `Matrix.reindexStarAlgEquiv` upgrading `Matrix.reindexAlgEquiv` to a
`StarAlgEquiv` (with `conjTranspose_submatrix` for `map_star'`), trace-preservation
lemmas (`trace_submatrix_eq`, `trace_reindexStarAlgEquiv`, `trace_conjStarAlgAut`),
and Hermitian / `PosSemidef` / `PosDef` preservation under a `StarAlgEquiv` between
complex matrix algebras (`map_starAlgEquiv` family) with reindex specialisations
(`mapEquiv` family).

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
…lity

Add `matrixLog_spectral_eq` (spectral expansion via the chosen Hermitian proof)
and `matrixLog_map_starAlgEquiv` (PosDef + StarAlgEquiv → matrixLog commutes,
proven via `StarAlgHomClass.map_cfc` after restricting scalars to ℝ). Wrap two
existing chunks in `section JensenConvexity` / `section SpectralIdentities` and
import the new `ForMathlib/Matrix/StarAlgEquiv` module.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
…onal matrices

Add `Matrix.cfc_log_diagonal_pos` (`cfc Real.log (diagonal d) = diagonal (Real.log ∘ d)`
for strictly positive real `d`) and `cfc_log_unitary_conj_diagonal` (commutation with
unitary conjugation). Proven via the Pi C*-algebra structure on `m → ℂ` plus
`StarAlgHomClass.map_cfc` for the diagonal-embedding star-algebra homomorphism.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
…regularization

Add `DensityMatrix.map` (transport along a trace-preserving StarAlgEquiv) and
`DensityMatrix.mapEquiv` (reindex specialisation via `Matrix.reindexStarAlgEquiv`),
the maximally-mixed state `π = I/d` with `maximallyMixed_posDef`, and the standard
regularization `regularize ρ ε := (1-ε) ρ + ε π` together with `regularize_posDef`,
the cfc identity `regularize_eq_cfc`, and reindex compatibility
`regularize_mapEquiv`. Flatten the redundant outer `namespace Matrix` (using
`open Matrix`) and qualify the scoped notation namespace as `Matrix.QuantumInfo`.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Add `LocalNet` (sites + per-site finite index types — data only, the
Haag–Kastler axioms isotony / locality / covariance are not formalised in this
commit; the `Haag–Kastler` mention in the docstring is a literature reference,
not a proof). Provide `regionIdx`, `localAlgebra`, `densityMatrix`, the
combiner equivalence `combineIdx`
(`regionIdx Λ_total ≃ regionIdx Λ × regionIdx (Λ_total \ Λ)`), the algebra
inclusion `includeAlgebra`, and the region-index split equivalences
`regionIdxInsertEquiv` / `regionIdxPairEquiv` / `regionIdxTripleEquiv`.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
… ρ ↾ Λ notation

Add the Schrödinger-picture restriction for a `LocalNet`: `Matrix.restrict`
(linear), `Matrix.restrictKraus`, the bundled `Matrix.QuantumChannel.restrict`
with CP / TP / channel structure, the iterated identity `restrict_restrict`,
and the Heisenberg-picture trace identity `trace_mul_includeAlgebra`. Lift to
density matrices via `DensityMatrix.restrict` and expose the paper-style
notation `ρ ↾ Λ` / `ρ ↾[h]` (scoped under `LocalNet.QuantumInfo`).

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
…nd regularization continuity

Bridge to Mathlib's CFC via `entropyFun_eq_negMulLog_of_nonneg`,
`vonNeumannEntropy_eq_negMulLog_sum`, and `vonNeumannEntropy_eq_matrixFunction_re`.
Add isomorphism invariance for PosDef states
(`vonNeumannEntropy_map_starAlgEquiv_posDef` and the reindex specialisation
`vonNeumannEntropy_mapEquiv_posDef`). Add the regularization stack:
`vonNeumannEntropy_regularize_eq_negMulLog_sum`,
`continuous_negMulLog_regularize_sum`, `tendsto_negMulLog_regularize_sum_zero`,
and the PSD lift `vonNeumannEntropy_mapEquiv` via the ε → 0+ limit.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
…ving StarAlgEquiv

Add `relativeEntropy_map_starAlgEquiv_posDef` (PosDef invariance under a
trace-preserving StarAlgEquiv between complex matrix algebras — the isometric
form of Lindblad–Uhlmann monotonicity restricted to invertible CPTP maps) and
the reindex specialisation `relativeEntropy_mapEquiv_posDef`.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
…sor identity

Add `DensityMatrix.kronecker` (independent-systems product state),
preservation of Hermitian / unitary structure under `⊗ₖ`, the explicit
Kronecker spectral decomposition, the **log-tensor identity**
`matrixLog (A ⊗ₖ B) = matrixLog A ⊗ₖ 1 + 1 ⊗ₖ matrixLog B` for PosDef `A`, `B`,
the equivalence-indexed partial trace `partialTrace`, and the Heisenberg
duality at product type. The proof routes via `matrixFunction` and
`StarAlgHomClass.map_cfc` to dodge the `CStarMatrix` instance diamond.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
kencyke and others added 5 commits April 30, 2026 13:44
…n on a LocalNet

Add `Matrix.restrict_maximallyMixed` (the marginal of the maximally-mixed state
is again maximally mixed after dimension cancellation) and the compatibility
`restrict h (regularize ρ ε) = regularize (restrict h ρ) ε`. This is the key
fact behind extending PosDef-only entropy theorems to PSD via the ε → 0+ limit.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
… form

Prove the bipartite mutual-information identity
`D(ρ_AB ‖ ρ_A ⊗ ρ_B) = -S(ρ_AB) + S(ρ_A) + S(ρ_B)` (PosDef) and use it together
with the data-processing inequality to prove **strong subadditivity** in the
AQFT-natural common-region-explicit form

  S(ρ ↾ ΛAB) + S(ρ ↾ ΛBC) ≥ S(ρ) + S(ρ ↾ ΛB)

given `ΛAB ⊆ ΛABC`, `ΛBC ⊆ ΛABC`, `ΛB ⊆ ΛABC`, `ΛA ⊆ ΛAB`,
`ΛAB \ ΛA = ΛB`, `ΛABC \ ΛA = ΛBC`. The familiar three-site form on
`{a, b, c}` is a corollary.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Drop the `ArakiRelativeEntropy`, `SegalEntropy`, `Channel/TraceClass`, and
`TraceClassRelativeEntropy` import lines that became stale after `86ea6c2 chore:
remove for now`, and add the modules introduced on this branch
(`Algebra.LocalNet`, `Analysis.CFC.Diagonal`, `Analysis.Entropy.KroneckerProduct`,
`Analysis.Entropy.Regularize`, `Analysis.Entropy.SSA`,
`Analysis.Matrix.PartialTrace`, `ForMathlib.LinearAlgebra.Matrix.StarAlgEquiv`).
Refresh the paper-notation table in `QuantumSystem/Notation.lean` for the
`Matrix.QuantumInfo` namespace move and the new `ρ ↾ Λ` row.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@kencyke kencyke marked this pull request as ready for review April 30, 2026 16:30
@kencyke kencyke self-assigned this Apr 30, 2026
@kencyke kencyke merged commit 4c8f1ef into main Apr 30, 2026
2 checks passed
@kencyke kencyke deleted the 6-von-neumann-entropy branch April 30, 2026 16:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Strong subadditivity of von Neumann entropy

1 participant