Doubly stochastic averaging of a monovarying bilinear form:
ProvedRHLinalg.bilinear_doublyStochastic_le_of_monovaryLet be a finite index type, let be families that monovary (Mathlib's Monovary a b: whenever one has — i.e. and are similarly ordered), and let be an real matrix that is doubly stochastic (nonnegative entries, all row sums and column sums equal to ).
Statement.
The proof is the classical combination of the Birkhoff–von Neumann theorem (a doubly stochastic matrix is a convex combination of permutation matrices) with the rearrangement inequality: for each permutation , since and are similarly ordered, and averaging over the Birkhoff weights gives the claim.
In the module Zeta23.LinAlg.VonNeumann this is the core combinatorial step behind von Neumann's trace inequality RHLinalg.vonNeumann_trace_ineq, part of the linear-algebra toolkit for the matrix-variational (rank–trace) portion of the zeta-zeros argument.
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.bilinear_doublyStochastic_le_of_monovary {a b : n → ℝ}
(hab : Monovary a b) {S : Matrix n n ℝ} (hS : S ∈ doublyStochastic ℝ n) :
∑ k, ∑ l, a k * S k l * b l ≤ ∑ k, a k * b k := by sorry