as an eigenvalue bilinear form through
ProvedRHLinalg.re_trace_mul_eq_eigenvalue_bilinearLet be Hermitian matrices over an RCLike field, with spectral decompositions and , and set (a unitary matrix). Here , denote the (unsorted, Mathlib-indexed) eigenvalues eigenvalues, and are the entries of the entrywise squared-norm matrix normSqMatrix W.
Statement.
That is, the real trace pairing of two Hermitian matrices is a bilinear form in their eigenvalue vectors, weighted by the doubly stochastic matrix . In the module Zeta23.LinAlg.VonNeumann this identity is the algebraic half of the proof of von Neumann's trace inequality RHLinalg.vonNeumann_trace_ineq: combining it with RHLinalg.normSqMatrix_mem_doublyStochastic_of_unitary and the rearrangement step over doubly stochastic matrices yields the bound by the sorted eigenvalue pairing.
import Mathlib.Algebra.Order.Rearrangement
import Mathlib.Analysis.Convex.Birkhoff
import Mathlib.Analysis.Matrix.PosDef
import Definitions.Def_Zeta23_LinAlg_PosIndex
import Definitions.Def_Zeta23_LinAlg_VonNeumann
open Matrix Finset
open scoped ComplexOrder
open RHLinalg
variable {𝕜 : Type*} [RCLike 𝕜]
variable {n : Type*} [Fintype n] [DecidableEq n]
theorem RHLinalg.re_trace_mul_eq_eigenvalue_bilinear {A B : Matrix n n 𝕜}
(hA : A.IsHermitian) (hB : B.IsHermitian) :
RCLike.re (A * B).trace =
∑ k, ∑ l, hA.eigenvalues k *
normSqMatrix (star (hA.eigenvectorUnitary : Matrix n n 𝕜) *
(hB.eigenvectorUnitary : Matrix n n 𝕜)) k l * hB.eigenvalues l := by sorry