-
Notifications
You must be signed in to change notification settings - Fork 20
feat: add strong_subadditivity problem #348
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| import EvalTools.Markers | ||
| import Mathlib.Analysis.Matrix.HermitianFunctionalCalculus | ||
| import Mathlib.LinearAlgebra.Matrix.PosDef | ||
|
|
||
| /-! # Strong additivity of quantum entropy | ||
|
|
||
| States that `S(ρ_ABC) + S(ρ_B) ≤ S(ρ_AB) + S(ρ_C)` where S is the von Neumman entropy. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The docstring has the wrong reduced state on the RHS: it says matching the theorem body's
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "von Neumman" → "von Neumann". |
||
|
|
||
| [Wikipedia article](https://en.wikipedia.org/wiki/Strong_subadditivity_of_quantum_entropy) on | ||
| the significance of this inequality. | ||
|
|
||
| -/ | ||
|
|
||
| namespace LeanEval | ||
| namespace Physics | ||
|
|
||
| variable {A B C : Type*} | ||
| variable [Fintype A] [Fintype B] [Fintype C] | ||
| variable [DecidableEq A] [DecidableEq B] [DecidableEq C] | ||
| variable [Nonempty A] [Nonempty B] [Nonempty C] | ||
|
|
||
| noncomputable section | ||
|
|
||
| /-- Partial trace on the left of a matrix -/ | ||
| def Matrix.traceLeft (M : Matrix (A × B) (A × B) ℂ) : Matrix B B ℂ := | ||
| Matrix.of fun i j ↦ ∑ k, ∑ l, M (k, i) (l, j) | ||
|
|
||
| /-- Partial trace on the right of a matrix -/ | ||
| def Matrix.traceRight (M : Matrix (A × B) (A × B) ℂ) : Matrix A A ℂ := | ||
| Matrix.of fun i j ↦ ∑ k, ∑ l, M (i, k) (j, l) | ||
|
Comment on lines
+24
to
+30
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The "two copies of B" can be distinct here. Perhaps worth doing for future proofing. |
||
|
|
||
| /-- Von Neumann entropy of a quantum state -/ | ||
| def entropy (M : Matrix A A ℂ) : ℝ := | ||
| -Complex.re (Matrix.trace (M * cfc Real.log M)) | ||
|
|
||
| open ComplexOrder | ||
|
|
||
| /-- Strong subadditivity of quantum entropy. We relax the common assumption that M is a normalized | ||
| density matrix to the simpler statement that it's PSD, which holds since normalization just produces | ||
| a positive affine transformation on the entropy. -/ | ||
| @[eval_problem] | ||
| theorem strong_subadditivity (M_ABC : Matrix (A × B × C) (A × B × C) ℂ) (h : M_ABC.PosSemidef) : | ||
| let M_AB : Matrix (A × B) (A × B) ℂ := | ||
| .traceRight <| M_ABC.reindex (.symm <| .prodAssoc ..) (.symm <| .prodAssoc ..) | ||
| let M_BC : Matrix (B × C) (B × C) ℂ := M_ABC.traceLeft | ||
| let M_B : Matrix B B ℂ := M_BC.traceRight | ||
| entropy M_ABC + entropy M_B ≤ entropy M_AB + entropy M_BC := by | ||
| sorry | ||
|
|
||
| end Physics | ||
| end LeanEval | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| id = "strong_subadditivity" | ||
| title = "Strong Subadditivity of von Neumann Entropy" | ||
| test = false | ||
| module = "LeanEval.Physics" | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Failing CI: the module = "LeanEval.Physics.StrongSubadditivity"(cf. |
||
| holes = ["strong_subadditivity"] | ||
| submitter = "Alex Meiburg" | ||
| notes = "This fact is 'equivalent' to other facts such as the joint convexity of quantum relative entropy. This formulation states the problem for all PSD matrices (over non-empty, finite index types) instead of unnecessarily restricting to normalized matrices of trace one. First proved in 1973 by E.H. Lieb and M.B. Ruskai, but at least half-a-dozen alternate proofs have been published, with varied techniques." | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Small correction to the reasoning in
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Optional, for consistency with the other problems: consider adding a
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in the header: "Strong additivity" → "Strong subadditivity".