Begin with one matrix you can finish by hand

Take the real symmetric, hence complex Hermitian, matrix

\[ H= \begin{bmatrix} 2&1\\ 1&2 \end{bmatrix}. \]

Hermitian means \(H^*=H\), where \(^*\) is conjugate transpose. Here every entry is real and the two off-diagonal entries agree, so that check is visible without a theorem prover.

An eigenpair is a scalar \(\lambda\) and a nonzero vector \(v\) satisfying \(Hv=\lambda v\). Two direct multiplications give

\[ H\begin{bmatrix}1\\1\end{bmatrix} {} = \begin{bmatrix}3\\3\end{bmatrix} {} = 3\begin{bmatrix}1\\1\end{bmatrix}, \qquad H\begin{bmatrix}1\\-1\end{bmatrix} {} = \begin{bmatrix}1\\-1\end{bmatrix} {} = 1\begin{bmatrix}1\\-1\end{bmatrix}. \]

The characteristic polynomial confirms that there are no other eigenvalue slots:

\[ \det(tI-H) {} = (t-2)^2-1 {} = (t-3)(t-1). \]

The project’s ordered convention is decreasing, so the exact ordered spectrum is

\[ \Lambda(H)=(\lambda_0(H),\lambda_1(H))=(3,1). \]

This vector keeps two slots, not merely a set of distinct values. If an eigenvalue repeats, it repeats in the vector. That is how algebraic multiplicity survives the next construction.

Place one atom at each slot

The Dirac measure \(\delta_x\) is the particular measure that puts unit mass at the single point \(x\). The spectral counting measure of our matrix is therefore

\[ N_H=\delta_3+\delta_1. \]

It has total mass two. Divide by the number of eigenvalue slots to obtain the empirical spectral measure

\[ L_H=\frac12N_H {} = \frac12\delta_3+\frac12\delta_1. \]

Here is the measure atom by atom. A singleton \(\{x\}\) asks how much mass is located exactly at \(x\).

Test set\(N_H\)\(L_H\)Why
\(\{3\}\)\(1\)\(1/2\)the first ordered slot equals three
\(\{1\}\)\(1\)\(1/2\)the second ordered slot equals one
\(\{2\}\)\(0\)\(0\)two is a matrix entry, not an eigenvalue
\(\mathbb R\)\(2\)\(1\)both slots lie on the real line

Two power-sum checks tie the atoms back to the entries:

\[ \operatorname{Tr}(H)=2+2=4=3+1, \]

and, since

\[ H^2= \begin{bmatrix} 5&4\\ 4&5 \end{bmatrix}, \]

we have

\[ \operatorname{Tr}(H^2)=10=3^2+1^2. \]
The two-by-two Hermitian matrix with diagonal entries two and off-diagonal entries one has eigenvectors one one and one minus one with ordered eigenvalues three and one. Its counting measure has unit atoms at three and one, and its empirical measure has one-half atoms at those same points. Trace four and trace-square ten match the first two spectral power sums.
FigureThe complete size-two ledger: multiplying \(H\) by \((1,1)\) and \((1,-1)\) exhibits eigenvectors with eigenvalues \(3\) and \(1\); their decreasing order follows from \(3>1\). The counting masses are \(N_H(\{3\})=N_H(\{1\})=1\); division by two gives \(L_H(\{3\})=L_H(\{1\})=1/2\). The moment checks \(4=3+1\) and \(10=3^2+1^2\) agree exactly with the matrix traces.

A near-miss in reconstruction: the spectrum forgets the basis

Now compare \(H\) with the diagonal matrix

\[ D= \begin{bmatrix} 3&0\\ 0&1 \end{bmatrix}. \]

Both matrices are Hermitian. Both have the same decreasing ordered spectrum \((3,1)\), hence the same counting measure and empirical measure:

\[ \Lambda(D)=\Lambda(H), \qquad N_D=N_H, \qquad L_D=L_H. \]

Yet the matrices are not equal. For example, \(H_{01}=1\) while \(D_{01}=0\). Their displayed eigenvectors are different too: the standard basis diagonalizes \(D\), whereas the diagonal directions \((1,1)\) and \((1,-1)\) diagonalize \(H\). In fact,

\[ H=UDU^*, \qquad U=\frac1{\sqrt2} \begin{bmatrix} 1&1\\ 1&-1 \end{bmatrix}. \]

This is not a failure of spectral theory. The spectrum is deliberately basis-independent. It records energy levels and multiplicities while forgetting the coordinate basis and eigenvectors. Therefore no theorem should try to reconstruct arbitrary matrix entries from \(L_H\) alone.

The coupled Hermitian matrix two one; one two and the diagonal matrix three zero; zero one are different matrices but have the same ordered eigenvalues three and one and the same empirical measure with half mass at each eigenvalue. The first uses diagonal eigenvectors while the second uses the standard basis, demonstrating that spectral measures forget basis coordinates and eigenvectors.
FigureA controlled information-loss boundary: \(H_{01}=1\) and \(D_{01}=0\), so \(H\ne D\). Nevertheless, the unitary basis change \(H=UDU^*\) gives both matrices ordered spectrum \((3,1)\) and empirical measure \((1/2)\delta_3+(1/2)\delta_1\). Equal spectral measures do not imply equal matrices or equal eigenvectors.

Five objects that the phrase “spectral distribution” can hide

The running matrix has now produced a vector and a measure without any probability experiment. Randomness adds more layers, each with a different type.

ObjectPaper typeLean typeWhat it describes
Ordered spectrum of one \(H\)\(\Lambda(H)\in\mathbb R^n\)Fin n → ℝdecreasing eigenvalue slots with multiplicity
Empirical measure of one \(H\)\(L_H\in\operatorname{Measure}(\mathbb R)\)Measure ℝone equal-weight atom ledger
Random spectral measure\(H\mapsto L_H\)HermitianEuclidean n → Measure ℝa measure-valued observable before a source law is pushed through it
Law of that random measure\(\mathcal Q_n=(L_{\bullet})_*\mu_n\)Measure (Measure ℝ)probability across whole sample measures
Mean empirical measure\(\overline L_n=\int L\,\mathcal Q_n(\mathrm dL)\)Measure ℝthe Giry barycenter, which averages inner measures

The second and fifth rows share the Lean type Measure ℝ, but they are not the same construction. The second belongs to one realized matrix. The fifth averages over an outer law and forgets sample-to-sample variation. Likewise, the third row is a function; it is not itself the fourth row’s probability measure.

For finite Gaussian unitary ensemble (GUE) matrices, the repository now has all five layers, but not in one source file:

  • RMT-10A, HermitianSpectrum.lean, defines the first three objects and proves law transport only under an explicit coordinatewise eigenvalue-measurability hypothesis.
  • RMT-10B, HermitianSpectrumContinuity.lean, proves the ordered coordinates are 1-Lipschitz, continuous, and measurable, then removes that hypothesis from the measure-valued interfaces.
  • RMT-10C, GaussianUnitaryEnsembleSpectrum.lean, defines GUE.empiricalSpectralLaw and GUE.meanEmpiricalSpectralMeasure and proves their finite zero/positive-dimensional facts.
A typed ladder begins with the fixed matrix H and its ordered vector three one, then its empirical measure with one-half atoms at three and one. A random matrix input makes the same construction a measure-valued function. After measurability, pushing a matrix law forward yields a measure on measures; joining that law yields one mean measure on the real line.
FigureDo not collapse the types: \(\Lambda(H)\) is a vector, \(L_H\) is one measure, \(H\mapsto L_H\) is a measure-valued function, \(\mathcal Q_n\) is a measure on a space of measures, and \(\overline L_n\) is the joined mean measure. RMT-10A builds the deterministic objects and conditional map; RMT-10B proves the needed measurability; RMT-10C names the finite GUE law and mean.

The empty-size boundary

At \(n=0\), there are no eigenvalue slots. RMT-10A defines both the counting measure and empirical measure to be zero:

\[ N_H=0, \qquad L_H=0. \]

The inner zero measure is not a probability measure because its total mass is zero. Nevertheless, RMT-10C’s outer law at size zero is the probability measure \(\delta_0\) on the space Measure ℝ: it puts all outer mass on the single sample measure \(0\). Its mean measure is again zero. This is a useful type test: a probability law may be concentrated on an object that is not itself a probability measure.

Choose a route up

RouteBegin withDestination
First encounterBegin with one matrixCompute every eigenvalue slot and atom
Information routeThe spectrum forgets the basisSee why equal spectra do not reconstruct entries
Type routeFive spectral objectsSeparate a sample measure, random measure, law, and mean
Linear algebra routeThe finite Hermitian spectral theoremGeneralize the size-two computation
Lean routeSeven exact bridgesTranslate paper objects into checked interfaces
Hands-on routeRun the worksheetRecheck the integer arithmetic locally
API routeThe complete public APIAudit the exact RMT-10A declaration boundary

Learning objectives

By the summit, you should be able to compute the running example without a black box, explain multiplicity and unitary invariance, distinguish all five typed objects above, defend the \(n=0\) policy, read seven Lean interfaces token by token, and state exactly which claims belong to RMT-10A, RMT-10B, and RMT-10C. You should also be able to name what is absent: no joint eigenvalue density, semicircle law, large-dimension convergence, rigidity, local spacing limit, spectral form factor, or out-of-time-order correlator is proved here.

In Lean: seven bridges from one spectrum to a law

The numeric worksheet later in the chapter checks the size-two arithmetic using only Std. The interfaces in this section are different: they are full project checks of exact Mathlib-backed declarations. Install the repository’s pinned dependencies first; these checks may require substantial disk space and memory.

Bridge one: the ordered spectrum is a function on finite slots

One idea, three languages Read across, then read the syntax map
A human says
For one intrinsic size-n Hermitian matrix H, ask for the real eigenvalue in each decreasingly ordered slot.
On paper
\(\Lambda(H):\operatorname{Fin}(n)\to\mathbb R,\quad i\mapsto\lambda_i(H),\quad i\le j\Rightarrow\lambda_i(H)\ge\lambda_j(H).\)
In Lean
RandomMatrix.orderedHermitianEigenvalues H : Fin n → ℝ
Syntax map
  • H has type HermitianEuclidean n, the intrinsic Hermitian carrier.
  • Fin n contains exactly the index slots zero through \(n-1\).
  • → ℝ means that each slot returns one real number.
  • orderedHermitianEigenvalues_antitone H is the separate theorem that records decreasing order; the type alone does not encode it.
  • The definition is noncomputable. It is a mathematical interface, not a floating-point eigenvalue routine.

For the running matrix, a human writes \(\Lambda(H)=(3,1)\). The project definition generalizes the slot structure, while our direct eigenvector certificates establish the two concrete values.

Bridge two: trace is the first ordered power sum

One idea, three languages Read across, then read the syntax map
A human says
Adding every ordered eigenvalue of a Hermitian matrix gives its ordinary complex trace.
On paper
\(\operatorname{Tr}(H)=\sum_{i=0}^{n-1}\lambda_i(H).\)
In Lean
RandomMatrix.trace_eq_sum_orderedHermitianEigenvalues H
Syntax map
  • Matrix.trace adds the diagonal entries of the ambient matrix.
  • hermitianToMatrix H forgets the intrinsic proof wrapper and exposes that ambient matrix.
  • ∑ i is a finite sum over every value of Fin n.
  • (… : ℂ) coerces each real eigenvalue into the trace’s complex codomain.
  • The sibling theorem trace_sq_eq_sum_sq_orderedHermitianEigenvalues replaces each summand by its square and the left side by trace (H ^ 2).

At size two these statements read \(4=3+1\) and \(10=3^2+1^2\). They are pointwise algebraic identities, not expectations.

Bridge three: counting measure means one Dirac mass per slot

One idea, three languages Read across, then read the syntax map
A human says
Place one unit point mass at each ordered eigenvalue slot, including repeated slots.
On paper
\(N_H=\sum_{i=0}^{n-1}\delta_{\lambda_i(H)}.\)
In Lean
RandomMatrix.spectralCountingMeasure H : Measure ℝ
Syntax map
  • Measure ℝ is the type of measures on the real line.
  • Measure.dirac x is the unit point mass \(\delta_x\).
  • The source definition uses ∑ i, so multiplicity is represented by repeated index contributions rather than by a set of distinct values.
  • spectralCountingMeasure_univ H proves that the total mass is exactly n.
  • No probability law on matrices occurs in this definition.

For the running spectrum, the definition unfolds to \(\delta_3+\delta_1\). If the spectrum were \((3,3)\), the result would be \(2\delta_3\), not \(\delta_3\).

Bridge four: empirical means normalize the slot count

One idea, three languages Read across, then read the syntax map
A human says
Scale the counting measure by the reciprocal dimension; at size zero, use the zero measure.
On paper
\(L_H=n^{-1}N_H\text{ for }n\gt0,\qquad L_H=0\text{ for }n=0.\)
In Lean
RandomMatrix.empiricalSpectralMeasure H : Measure ℝ
Syntax map
  • The source writes (n : ℝ≥0∞)⁻¹, the inverse of the dimension in the extended nonnegative reals used to scale measures.
  • • is scalar multiplication of a measure.
  • empiricalSpectralMeasure_zero H proves the empty-size value is exactly zero.
  • empiricalSpectralMeasure_succ_isProbability n H proves mass one for a matrix of size n + 1.
  • empiricalSpectralProbability n H adds the mass-one proof and returns a bundled ProbabilityMeasure ℝ only in positive dimension.

For our matrix, the dimension is two, so each unit counting atom becomes an empirical atom of mass one half.

Bridge five: measurability belongs to the whole observable

One idea, three languages Read across, then read the syntax map
A human says
In the current successor module, the map sending a Hermitian matrix to its empirical spectral measure is measurable.
On paper
\(H\mapsto L_H:\mathcal H_n\to\operatorname{Measure}(\mathbb R)\text{ is measurable}.\)
In Lean
RandomMatrix.measurable_empiricalSpectralMeasure : Measurable (@RandomMatrix.empiricalSpectralMeasure n)
Syntax map
  • @ exposes the implicit dimension argument so the function being measured is unambiguous.
  • Measurable licenses preimages and pushforward measures. It does not choose a source probability law.
  • The codomain Measure ℝ carries Mathlib’s Giry measurable structure, generated by measurable evaluation maps.
  • RMT-10A exports only measurable_empiricalSpectralMeasure_of_measurable_eigenvalues, whose argument is the coordinatewise hypothesis.
  • RMT-10B proves measurable_orderedHermitianEigenvalues_apply from a 1-Lipschitz perturbation bound, then supplies it to the RMT-10A theorem.

This is a current project theorem, but it belongs to HermitianSpectrumContinuity.lean, not to the base RMT-10A module.

Bridge six: a random spectral law is an outer measure

One idea, three languages Read across, then read the syntax map
A human says
Push the intrinsic finite GUE matrix law through the measurable sample-measure map; the result is a law whose points are whole measures.
On paper
\(\mathcal Q_n=(H\mapsto L_H)_*\mu_n\in\operatorname{Measure}(\operatorname{Measure}(\mathbb R)).\)
In Lean
GUE.empiricalSpectralLaw n : Measure (Measure ℝ)
Syntax map
  • GUE.intrinsicLaw n is the source probability measure on intrinsic Hermitian matrices.
  • .map empiricalSpectralMeasure is the pushforward through the sample-measure function.
  • The outer Measure (…) describes randomness across matrix samples; the inner Measure ℝ is one sample’s spectral measure.
  • instIsProbabilityMeasureEmpiricalSpectralLaw n proves the outer law has mass one in every dimension.
  • At \(n=0\), empiricalSpectralLaw_zero identifies this outer law with Measure.dirac (0 : Measure ℝ).

This named unconditional law first appears in RMT-10C. RMT-10A’s strongest law statement is only the conditional equality between ambient and intrinsic pushforward routes.

Bridge seven: joining the outer law gives one mean measure

One idea, three languages Read across, then read the syntax map
A human says
Average the inner sample measures under their outer law; the result is one measure on the real line, not another law on measures.
On paper
\(\overline L_n(B)=\int L(B)\,\mathcal Q_n(\mathrm dL),\qquad \overline L_n\in\operatorname{Measure}(\mathbb R).\)
In Lean
GUE.meanEmpiricalSpectralMeasure n = (GUE.empiricalSpectralLaw n).join
Syntax map
  • .join is the Giry barycenter operation on a measure of measures.
  • The result has type Measure ℝ, one level lower than Measure (Measure ℝ).
  • This is an average of sample measures, not the expected value of a matrix and not a sample empirical measure for a distinguished matrix.
  • meanEmpiricalSpectralMeasure_zero proves that the mean is zero at size zero.
  • meanEmpiricalSpectralMeasure_succ_isProbability proves the mean has mass one in every positive dimension.

The displayed equality is the body of the RMT-10C definition. It does not by itself prove a density, an interchange of arbitrary integrals, or an asymptotic limit.

Try the exact RMT-10A declarations in the repository

Try it in the repository NonlinearDynamics/Random/RandomMatrices/HermitianSpectrum.lean

Full project check: pinned project plus Mathlib. Place this probe in a temporary project scratch file:

import NonlinearDynamics.Random.RandomMatrices.HermitianSpectrum

open Matrix MeasureTheory
open scoped ENNReal Matrix
open NonlinearDynamics.Random

#print RandomMatrix.orderedHermitianEigenvalues
#check RandomMatrix.orderedHermitianEigenvalues_antitone
#check RandomMatrix.trace_eq_sum_orderedHermitianEigenvalues
#check RandomMatrix.trace_sq_eq_sum_sq_orderedHermitianEigenvalues
#check RandomMatrix.orderedHermitianEigenvalues_hermitianCongruence
#print RandomMatrix.spectralCountingMeasure
#check RandomMatrix.spectralCountingMeasure_univ
#print RandomMatrix.empiricalSpectralMeasure
#check RandomMatrix.empiricalSpectralMeasure_zero
#check RandomMatrix.empiricalSpectralMeasure_succ_isProbability
#check RandomMatrix.empiricalSpectralProbability
#check RandomMatrix.measurable_empiricalSpectralMeasure_of_measurable_eigenvalues
#check RandomMatrix.map_matrixLaw_ambientEmpiricalSpectralMeasure_eq_map_intrinsicLaw_of_measurable_eigenvalues

#print exposes definition bodies. #check invokes the pinned elaborator and displays exact declaration types. Notice that the final two names retain the hypothesis in their names. The full project command rendered below checks the authoritative RMT-10A source, not the temporary probe.

Full project check, from the repository root
cd formalization
lake env lean -DwarningAsError=true NonlinearDynamics/Random/RandomMatrices/HermitianSpectrum.lean

Resource note: this exact file uses the repository's pinned Lean and Mathlib dependencies. Initial project setup can require substantial disk space and build time. For a lightweight first step on macOS or Linux, use the page's standalone Lean-core or Std tutorial.

Try the exact RMT-10B measurability bridge

Try it in the repository NonlinearDynamics/Random/RandomMatrices/HermitianSpectrumContinuity.lean

Full project check: pinned project plus Mathlib. Type this separate probe:

import NonlinearDynamics.Random.RandomMatrices.HermitianSpectrumContinuity

open NonlinearDynamics.Random

#check RandomMatrix.abs_orderedHermitianEigenvalues_sub_le_frobenius
#check RandomMatrix.lipschitzWith_orderedHermitianEigenvalues_apply
#check RandomMatrix.continuous_orderedHermitianEigenvalues_apply
#check RandomMatrix.measurable_orderedHermitianEigenvalues_apply
#check RandomMatrix.measurable_spectralCountingMeasure
#check RandomMatrix.measurable_empiricalSpectralMeasure
#check RandomMatrix.measurable_empiricalSpectralProbability
#check RandomMatrix.measurable_ambientEmpiricalSpectralMeasure
#check RandomMatrix.map_matrixLaw_ambientEmpiricalSpectralMeasure_eq_map_intrinsicLaw

These are unconditional successor declarations. Their module first proves the perturbation bound, then continuity, then measurability. The generated command checks that exact leaf with the repository’s pinned dependencies.

Full project check, from the repository root
cd formalization
lake env lean -DwarningAsError=true NonlinearDynamics/Random/RandomMatrices/HermitianSpectrumContinuity.lean

Resource note: this exact file uses the repository's pinned Lean and Mathlib dependencies. Initial project setup can require substantial disk space and build time. For a lightweight first step on macOS or Linux, use the page's standalone Lean-core or Std tutorial.

Try the exact RMT-10C law and mean interfaces

Try it in the repository NonlinearDynamics/Random/RandomMatrices/GaussianUnitaryEnsembleSpectrum.lean

Full project check: pinned project plus Mathlib. The final probe distinguishes the sample measure, its law, and its mean:

import NonlinearDynamics.Random.RandomMatrices.GaussianUnitaryEnsembleSpectrum

open NonlinearDynamics.Random

#check RandomMatrix.empiricalSpectralMeasure
#check GUE.empiricalSpectralLaw
#check GUE.empiricalSpectralLawProbability
#check GUE.empiricalSpectralProbabilityLaw
#check GUE.empiricalSpectralLaw_zero
#print GUE.meanEmpiricalSpectralMeasure
#check GUE.meanEmpiricalSpectralMeasure_zero
#check GUE.meanEmpiricalSpectralMeasure_succ_isProbability
#check GUE.integral_empiricalSpectralMoment_one
#check GUE.integral_empiricalSpectralMoment_two
#check GUE.integral_empiricalSpectralMoment_two_succ

The two nested law types are intentionally different. The raw all-dimensions law has samples in Measure ℝ; the positive-dimensional bundled law has samples in ProbabilityMeasure ℝ. The final three theorems are finite expected-moment statements, not asymptotics.

Full project check, from the repository root
cd formalization
lake env lean -DwarningAsError=true NonlinearDynamics/Random/RandomMatrices/GaussianUnitaryEnsembleSpectrum.lean

Resource note: this exact file uses the repository's pinned Lean and Mathlib dependencies. Initial project setup can require substantial disk space and build time. For a lightweight first step on macOS or Linux, use the page's standalone Lean-core or Std tutorial.

Base camp zero: intrinsic Hermitian matrices

The project’s intrinsic carrier RandomMatrix.HermitianEuclidean n is a real normed space whose elements are complex \(n\)-by-\(n\) matrices together with a proof of Hermiticity. If \(H\) is represented by the matrix \(A\), the property is

\[ A^*=A, \]

where \(A^*\) is the conjugate transpose.

Bundling the property matters. A theorem about an intrinsic value may use Hermiticity without carrying a new premise at every line. The earlier Frobenius-geometry module also gives this carrier the topology and measurable space inherited from its finite real Euclidean structure. At the RMT-10A boundary, the remaining problem was not a missing measurable structure on the matrix space. It was the lack, inside that module, of a theorem connecting the specific ordered-eigenvalue functions to that structure. RMT-10B now supplies that theorem.

The module uses hermitianToMatrix when it needs the ambient matrix and hermitianCongruence U H for the intrinsic action

\[ H\longmapsto UHU^*. \]

For unitary \(U\), this action stays inside the Hermitian carrier.

Base camp one: the finite Hermitian spectral theorem

For a complex Hermitian matrix \(H\), the finite spectral theorem supplies a unitary matrix \(U\) and a real diagonal vector \(\lambda\) such that

\[ H=U\,\operatorname{diag}(\lambda)\,U^*. \]

The columns of \(U\) form an orthonormal eigenbasis. Every diagonal entry of \(\operatorname{diag}(\lambda)\) is real, and each root of the characteristic polynomial appears according to its algebraic multiplicity. Mathlib’s official matrix-spectrum module proves this diagonalization and exposes both ordered and reindexed eigenvalue interfaces (Mathlib contributors).

The theorem changes what can be regarded as intrinsic. Matrix entries depend on a basis. The multiset of eigenvalues does not. If two Hermitian matrices are related by a unitary basis change, they describe the same diagonal operator in different coordinates.

Multiplicity is not an optional annotation

For

\[ H= \begin{bmatrix} 5&0&0\\ 0&2&0\\ 0&0&2 \end{bmatrix}, \]

the set of distinct eigenvalues is \(\{5,2\}\), but the characteristic polynomial is

\[ (X-5)(X-2)^2. \]

The ordered vector is \((5,2,2)\). The repeated coordinate is needed for

\[ \operatorname{Tr}(H)=5+2+2 \]

and for every spectral power sum. The counting measure will later turn those two copies of \(2\) into an atom of mass two. A set of distinct spectral locations cannot recover this information.

Camp one: why the sorted enumeration matters

Mathlib offers two closely related definitions for a Hermitian matrix whose entry index type is \(\iota\):

Matrix.IsHermitian.eigenvalues₀ :
  Fin (Fintype.card ι) → ℝ

Matrix.IsHermitian.eigenvalues :
  ι → ℝ

The first is canonical as an ordered finite ordinal. Mathlib proves eigenvalues₀_antitone, so lower indices contain no smaller values:

\[ i\le j\quad\Longrightarrow\quad \operatorname{eigenvalues}_0(H,i)\ge \operatorname{eigenvalues}_0(H,j). \]

The second reuses the original index type by choosing a general equivalence with the finite ordinal. That equivalence preserves the number of indices. It need not preserve any order living on \(\iota\). This is entirely appropriate for results that only need a product or sum over all eigenvalues, but it is not a sorted coordinate interface.

The project specializes to \(\iota=\operatorname{Fin}(n)\). Mathlib’s theorem Fintype.card_fin n identifies the cardinality of that type with \(n\). The definition orderedHermitianEigenvalues transports eigenvalues₀ along the corresponding finite cast:

noncomputable def orderedHermitianEigenvalues {n : ℕ}
    (H : HermitianEuclidean n) : Fin n → ℝ :=
  fun i => H.2.eigenvalues₀
    (Fin.cast (Fintype.card_fin n).symm i)

This cast is order preserving. The theorem orderedHermitianEigenvalues_antitone transports Mathlib’s antitonicity through Fin.cast_le_cast. When sums later need an explicit equivalence, the proof uses Fin.castOrderIso (Fintype.card_fin n).symm.

Why spend proof effort on order if the empirical measure forgets permutations? Because this vector is intended as a reusable spectral interface. The largest eigenvalue is coordinate zero. Monotone comparisons between coordinates have a meaning. Future perturbation and extreme-eigenvalue results can state their coordinates without first quotienting by permutations. The measure layer then uses the same vector without losing multiplicity.

Camp two: trace as a spectral power sum

Trace is basis invariant. In an eigenbasis it becomes the sum of diagonal eigenvalues:

\[ \operatorname{Tr}(H)=\sum_{i=0}^{n-1}\lambda_i(H). \]

The project theorem trace_eq_sum_orderedHermitianEigenvalues states this in the ambient complex codomain:

theorem trace_eq_sum_orderedHermitianEigenvalues
    (H : HermitianEuclidean n) :
    Matrix.trace (hermitianToMatrix H) =
      ∑ i, (orderedHermitianEigenvalues H i : ℂ)

The coercion from real eigenvalues to complex numbers is explicit. The matrix trace is complex because the ambient entries are complex, even though Hermiticity forces its value to be real.

The proof route through characteristic roots

The proof is not a rewrite with Mathlib’s arbitrarily reindexed trace_eq_sum_eigenvalues. It follows a route that preserves the chosen ordered interface:

  1. Hermiticity proves the characteristic polynomial splits.
  2. The matrix trace is rewritten as the sum of characteristic-polynomial roots.
  3. Mathlib identifies that root multiset with the values of eigenvalues₀.
  4. A sum along the order isomorphism moves from the cardinality-indexed vector to Fin n.

The value of a finite sum is permutation invariant, but the proof explicitly connects it to the same ordered vector used everywhere else.

The square sees spectral energy

The second identity is

\[ \operatorname{Tr}(H^2)=\sum_{i=0}^{n-1}\lambda_i(H)^2. \]

RMT-09 reached the left side without eigenvalues by proving that a Hermitian trace square is the Frobenius norm square. RMT-10A now reaches the right side through diagonalization. The theorem trace_sq_eq_sum_sq_orderedHermitianEigenvalues makes the bridge exact.

Let \(D=\operatorname{diag}(\lambda)\) and \(H=UDU^*\). Then

\[ \begin{aligned} H^2 &=(UDU^*)(UDU^*)\\ &=UD(U^*U)DU^*\\ &=UD^2U^*. \end{aligned} \]

Cyclicity of trace and \(U^*U=I\) give

\[ \operatorname{Tr}(H^2) =\operatorname{Tr}(D^2) =\sum_i\lambda_i^2. \]

The Lean proof follows this calculation with matrix associativity, Matrix.trace_mul_cycle, the unitary identity, and the explicit diagonal formula. It then reindexes Mathlib’s diagonal eigenvalues to eigenvalues₀ and finally to the project vector.

These identities are deterministic. They do not assert integrability under a random-matrix law. RMT-09 separately proved integrability and expected values for the first two ambient Gaussian unitary ensemble (GUE) trace powers. RMT-10C now combines those layers into normalized sample moments and their exact finite GUE expectations in Finite Gaussian Unitary Ensemble Empirical Spectral Laws and Normalized Moments.

Camp three: unitary congruence changes coordinates, not spectrum

For a unitary matrix \(U\), intrinsic congruence sends \(H\) to \(UHU^*\). The characteristic polynomial is unchanged:

\[ \det(XI-UHU^*)=\det(XI-H). \]

The theorem orderedHermitianEigenvalues_hermitianCongruence proves the strong coordinatewise statement

\[ \Lambda(UHU^*)=\Lambda(H). \]

Its Lean proof has two conceptual stages.

First, it uses the characteristic-polynomial identity Matrix.charpoly_mul_comm. Moving a factor cyclically and reducing \(U^*U\) to the identity proves that the two characteristic polynomials are equal.

Second, it avoids selecting or matching individual eigenvectors. Mathlib describes eigenvalues₀ as the decreasing sort of the real parts of the characteristic roots. Equal characteristic polynomials have equal root multisets, and sorting the same multiset by the same order yields the same list. Function extensionality then gives equality of every project coordinate.

This proof handles repeated eigenvalues naturally. When an eigenspace has dimension greater than one, an eigenbasis inside it is far from unique. The sorted root list is still canonical.

Once the vector equality is available, rewriting both definitions gives unitary invariance of both spectral measures:

\[ N_{UHU^*}=N_H, \qquad L_{UHU^*}=L_H. \]

These are pointwise deterministic invariances. They should be distinguished from the earlier theorem that the GUE matrix law is unitary invariant. The former says the observable is constant along every unitary orbit. The latter says the random input law is itself unchanged by the action.

Camp four: from repeated coordinates to finite atoms

The Dirac measure \(\delta_x\) places unit mass at the point \(x\). For a measurable set \(B\subseteq\mathbb R\),

\[ \delta_x(B)= \begin{cases} 1,&x\in B,\\ 0,&x\notin B. \end{cases} \]

Mathlib’s official Dirac module provides that atomic measure together with its map and probability properties. Its counting-measure module defines global counting measure as a sum of Dirac measures (Mathlib contributors). RMT-10A uses the same idea over a finite eigenvalue index:

noncomputable def spectralCountingMeasure
    (H : HermitianEuclidean n) : Measure ℝ :=
  ∑ i, Measure.dirac (orderedHermitianEigenvalues H i)

If two indices carry the same eigenvalue, two equal Dirac measures occur in the sum. Their masses add. This is exactly how algebraic multiplicity becomes measure multiplicity.

Total mass

Every Dirac measure assigns mass one to the whole real line. There are \(n\) index slots, so

\[ N_H(\mathbb R)=n. \]

The theorem spectralCountingMeasure_univ states this uniformly, including the empty case. The specialized theorem spectralCountingMeasure_zero makes the zero-dimensional identity visible:

\[ N_H=0\quad\text{when }n=0. \]

Unitary invariance is transferred by spectralCountingMeasure_hermitianCongruence, which rewrites every Dirac location with the already proved ordered-vector equality.

The first two counting-measure moments

Integrating against a finite sum of Dirac atoms evaluates the integrand at each atom. Therefore

\[ \int_{\mathbb R}x\,\mathrm dN_H(x) =\sum_i\lambda_i(H) =\operatorname{Tr}(H) \]

and

\[ \int_{\mathbb R}x^2\,\mathrm dN_H(x) =\sum_i\lambda_i(H)^2 =\operatorname{Tr}(H^2). \]

The project states these as integral_complex_ofReal_spectralCountingMeasure and integral_sq_complex_ofReal_spectralCountingMeasure. The integrands are coerced into \(\mathbb C\), matching the codomain of the trace. Finite sums of Dirac integrals are automatically integrable for these pointwise finite values, and the proof supplies those obligations to integral_finsetSum_measure.

For positive dimension, the corresponding empirical moments follow on paper by multiplying by \(1/n\):

\[ \int x\,\mathrm dL_H(x)=\frac1n\operatorname{Tr}(H), \qquad \int x^2\,\mathrm dL_H(x)=\frac1n\operatorname{Tr}(H^2). \]

Those two normalized formulas are explanatory consequences. RMT-10A does not publish them as separate public declarations, and at \(n=0\) the right sides would require a separate convention.

Camp five: dimension zero is not a probability space of eigenvalues

For \(n\gt0\), normalization gives

\[ L_H=\frac1nN_H, \qquad L_H(\mathbb R)=1. \]

The dimension-zero case has no eigenvalue slots. There is no uniform probability distribution over an empty set. One could force a total probability-valued definition by choosing an arbitrary fallback point and returning a Dirac measure there, but that point would not be an eigenvalue and would inject fake spectral mass.

The project instead defines

noncomputable def empiricalSpectralMeasure
    (H : HermitianEuclidean n) : Measure ℝ :=
  (n : ℝ≥0∞)⁻¹ • spectralCountingMeasure H

In the extended nonnegative reals, the inverse of zero is infinity. The empty counting measure is zero, and infinity scaled by the zero measure is zero. Thus

\[ L_H=0\quad\text{when }n=0. \]

Three declarations expose the boundary at the right strengths:

  • empiricalSpectralMeasure_zero proves the exact empty-case equality.
  • empiricalSpectralMeasure_isZeroOrProbability says the measure has total mass zero or one in every natural dimension.
  • empiricalSpectralMeasure_succ_isProbability proves mass one for dimensions written as \(n+1\).

Mathlib’s IsZeroOrProbabilityMeasure typeclass is precisely the uniform proposition needed here. Its ProbabilityMeasure ℝ type is a subtype containing a measure together with a proof that its total mass is one (Mathlib contributors).

The definition empiricalSpectralProbability n H bundles \(L_H\) into that subtype only when \(H\) has dimension \(n+1\). This makes a valuable impossible state unrepresentable: code receiving that wrapper never has to wonder whether it was handed the zero-dimensional zero measure.

Unitary invariance survives scaling and appears as empiricalSpectralMeasure_hermitianCongruence.

Camp six: the Giry measurability gate

A measure can itself be a point in a measurable space. Mathlib equips Measure α with the Giry measurable structure: the smallest measurable structure making every evaluation map

\[ \mu\longmapsto\mu(B) \]

measurable when \(B\) is measurable. The official Giry module includes all measures, not only probability measures, and proves that Dirac embedding, measure addition, mapping, joining, and related constructions are measurable (Mathlib contributors).

For the spectral counting map

\[ H\longmapsto\sum_i\delta_{\lambda_i(H)} \]

the outer operations are therefore available. If every coordinate map \(H\mapsto\lambda_i(H)\) is measurable, composition with measurable Dirac and finite measurable addition proves that the whole counting-measure map is measurable. Scaling by the constant inverse dimension then proves measurability of the empirical-measure map.

RMT-10A packages these deductions as:

theorem measurable_spectralCountingMeasure_of_measurable_eigenvalues
    (h : ∀ i, Measurable
      (fun H => orderedHermitianEigenvalues H i)) :
    Measurable spectralCountingMeasure

theorem measurable_empiricalSpectralMeasure_of_measurable_eigenvalues
    (h : ∀ i, Measurable
      (fun H => orderedHermitianEigenvalues H i)) :
    Measurable empiricalSpectralMeasure

For positive dimension, subtype construction then yields measurable_empiricalSpectralProbability_of_measurable_eigenvalues.

What RMT-10A assumes, and RMT-10B proves

Inside RMT-10A, the implication is checked while its premise remains an argument to the theorem.

Pinned Mathlib’s matrix-spectrum module provides eigenvalues₀, antitonicity in the index, and algebraic spectral identities. It does not provide continuity of the map from Hermitian matrices to each ordered eigenvalue coordinate, nor the weaker measurability theorem needed here. Antitonicity in \(i\) says nothing about dependence on \(H\).

The repository’s next module, RMT-10B, discharges the premise. It proves the Frobenius perturbation inequality

\[ |\lambda_i(A)-\lambda_i(B)|\leq \|A-B\|_F, \]

then derives 1-Lipschitz continuity, continuity, and coordinatewise measurability. Therefore the current project may write the unconditional measurable_empiricalSpectralMeasure. When discussing RMT-10A alone, however, writing

\[ \bigl(\operatorname{GUE\ matrix\ law}\bigr) \mathbin{\mathrm{map}}L \]

without displaying its hypothesis would overstate that module’s interface.

Camp seven: a total observable on all complex matrices

The intrinsic map \(H\mapsto L_H\) accepts only bundled Hermitian inputs. The project’s ambient GUE matrix law lives on the full type of complex matrices, even though it is constructed as the pushforward of an intrinsic Hermitian law. To compose an intrinsic observable with that ambient law, RMT-10A defines a total extension.

The map matrixToHermitianOrZero n behaves as follows:

\[ A\longmapsto \begin{cases} \text{the intrinsic matrix }A,&A\text{ is Hermitian},\\ 0,&A\text{ is not Hermitian}. \end{cases} \]

This is a policy choice for totalization, not a spectral claim about non-Hermitian matrices. Sending an off-locus matrix to zero does not assert that its spectrum is zero. It gives the ambient function a value where the intended Hermitian observable is outside its domain.

The theorem measurable_matrixToHermitianOrZero is unconditional. The Hermitian locus is a measurable set from the earlier geometry module. The matrix-to-Frobenius inclusion is measurable coordinatewise. Mathlib’s measurable piecewise construction then combines the Hermitian branch with the constant-zero branch.

The theorem matrixToHermitianOrZero_hermitianToMatrix proves that the extension is a left inverse on genuine intrinsic inputs:

\[ \operatorname{matrixToHermitianOrZero} \bigl(\operatorname{hermitianToMatrix}(H)\bigr)=H. \]

The ambient observable is now a simple composition:

noncomputable def ambientEmpiricalSpectralMeasure (n : ℕ)
    (A : Matrix (Fin n) (Fin n) ℂ) : Measure ℝ :=
  empiricalSpectralMeasure (matrixToHermitianOrZero n A)

Its RMT-10A measurability theorem remains conditional because the totalization is measurable but that module still requests ordered-eigenvalue measurability. RMT-10B supplies the request and exports measurable_ambientEmpiricalSpectralMeasure unconditionally.

Why zero totalization is harmless for the checked GUE comparison

The ambient GUE law is not an unrelated law that merely happens to give the Hermitian set probability one. It is definitionally connected to the intrinsic law by the checked pushforward identity

\[ \operatorname{GUE.matrixLaw}(n) =\operatorname{GUE.intrinsicLaw}(n) \mathbin{\mathrm{map}}\operatorname{hermitianToMatrix}. \]

Push the ambient law through the totalized observable and use associativity of measure map. Every source sample first enters the ambient space through hermitianToMatrix, then immediately returns through the left inverse. Pointwise, the composition reduces to the intrinsic empirical measure.

Under the coordinatewise measurability hypothesis, RMT-10A proves:

theorem
  map_matrixLaw_ambientEmpiricalSpectralMeasure_eq_map_intrinsicLaw_of_measurable_eigenvalues
    (h : ∀ i, Measurable
      (fun H => orderedHermitianEigenvalues H i)) :
    (GUE.matrixLaw n).map (ambientEmpiricalSpectralMeasure n) =
      (GUE.intrinsicLaw n).map empiricalSpectralMeasure

This is an exact equality of two measures on Measure ℝ. It says the ambient and intrinsic routes agree whenever both maps are licensed. It does not remove the premise, introduce a named unconditional GUE empirical spectral law, or claim a density for that law.

What the two routes mean

The left route matches downstream code that starts from the existing ambient matrix law. Non-Hermitian inputs have a total fallback, though this particular source law reaches the observable through the intrinsic inclusion.

The right route is mathematically direct. It samples from the real Euclidean Hermitian carrier and applies the intrinsic spectral observable.

The equality proves representational independence between those routes, not an asymptotic or universality statement.

Type the size-two ledger yourself with Lean and Std

The exact project spectrum uses Mathlib’s complex matrices, Hermitian spectral theorem, finite measures, and Giry measurable space. A first-time reader can check the running arithmetic before loading that machinery. The worksheet below imports only Lean’s Std library and models real two-by-two matrices with four integer fields.

Create a scratch directory outside formalization/. Save this exact block as HermitianSpectraTutorial.lean:

import Std

namespace HermitianSpectraTutorial

structure Vec2 where
  x : Int
  y : Int
  deriving Repr, DecidableEq

def Vec2.scale (a : Int) (v : Vec2) : Vec2 :=
  { x := a * v.x, y := a * v.y }

structure Matrix2 where
  a00 : Int
  a01 : Int
  a10 : Int
  a11 : Int
  deriving Repr, DecidableEq

def Matrix2.mulVec (A : Matrix2) (v : Vec2) : Vec2 :=
  { x := A.a00 * v.x + A.a01 * v.y
    y := A.a10 * v.x + A.a11 * v.y }

def Matrix2.IsHermitian (A : Matrix2) : Prop :=
  A.a01 = A.a10

instance (A : Matrix2) : Decidable A.IsHermitian := by
  unfold Matrix2.IsHermitian
  infer_instance

def isEigenpair (A : Matrix2) (lambda : Int) (v : Vec2) : Bool :=
  v != { x := 0, y := 0 } &&
    A.mulVec v == v.scale lambda

def trace (A : Matrix2) : Int :=
  A.a00 + A.a11

def traceSquare (A : Matrix2) : Int :=
  A.a00 * A.a00 + 2 * A.a01 * A.a10 + A.a11 * A.a11

def spectralSum (spectrum : List Int) : Int :=
  spectrum.foldl (fun total x => total + x) 0

def spectralSquareSum (spectrum : List Int) : Int :=
  spectrum.foldl (fun total x => total + x * x) 0

def atomCount (spectrum : List Int) (x : Int) : Nat :=
  spectrum.count x

def H : Matrix2 :=
  { a00 := 2, a01 := 1, a10 := 1, a11 := 2 }

def D : Matrix2 :=
  { a00 := 3, a01 := 0, a10 := 0, a11 := 1 }

def plus : Vec2 := { x := 1, y := 1 }
def minus : Vec2 := { x := 1, y := -1 }
def e0 : Vec2 := { x := 1, y := 0 }
def e1 : Vec2 := { x := 0, y := 1 }

def orderedSpectrumH : List Int := [3, 1]
def orderedSpectrumD : List Int := [3, 1]
def emptySpectrum : List Int := []

#eval [isEigenpair H 3 plus, isEigenpair H 1 minus,
  isEigenpair D 3 e0, isEigenpair D 1 e1]

#eval (orderedSpectrumH,
  [atomCount orderedSpectrumH 3,
   atomCount orderedSpectrumH 1,
   atomCount orderedSpectrumH 2],
  orderedSpectrumH.length)

#eval [trace H, traceSquare H,
  spectralSum orderedSpectrumH,
  spectralSquareSum orderedSpectrumH]

#eval [decide (H = D), decide (orderedSpectrumH = orderedSpectrumD),
  decide H.IsHermitian, decide D.IsHermitian]

#eval (emptySpectrum.length, atomCount emptySpectrum 0)

example : isEigenpair H 3 plus = true := by decide
example : isEigenpair H 1 minus = true := by decide
example : orderedSpectrumH = [3, 1] := by decide
example : atomCount orderedSpectrumH 3 = 1 := by decide
example : atomCount orderedSpectrumH 1 = 1 := by decide
example : atomCount orderedSpectrumH 2 = 0 := by decide
example : trace H = spectralSum orderedSpectrumH := by decide
example : traceSquare H = spectralSquareSum orderedSpectrumH := by decide
example : H ≠ D := by decide
example : orderedSpectrumH = orderedSpectrumD := by decide
example : emptySpectrum.length = 0 := by decide

end HermitianSpectraTutorial

Open a terminal in that scratch directory and type:

source "$HOME/.elan/env"
elan run leanprover/lean4:v4.32.0 lean HermitianSpectraTutorial.lean

This exact worksheet was executed successfully with Lean 4.32.0 while the chapter was rebuilt. Lean printed:

[true, true, true, true]
([3, 1], [1, 1, 0], 2)
[4, 10, 4, 10]
[false, true, true, true]
(0, 0)

Read the output in order:

  1. the four candidate eigenpairs for \(H\) and \(D\) all satisfy \(Av=\lambda v\);
  2. the ordered spectrum is \([3,1]\), its masses at \(3,1,2\) are \([1,1,0]\) in counting units, and it has two slots;
  3. matrix trace, matrix trace square, spectral sum, and spectral square sum are \([4,10,4,10]\);
  4. \(H=D\) is false, their spectrum lists are equal, and both symmetry checks are true; and
  5. the empty spectrum has zero slots and zero atoms at zero.

Each example is a kernel-checked proof of one finite equality. The code deliberately stores empirical masses as integer atom counts with a separate denominator two, so there is no hidden floating-point calculation. It checks the tutorial ledger only. It does not prove the general Hermitian spectral theorem, compute Mathlib’s eigenvalues₀, construct a Measure ℝ, or check any project declaration. Its command is safe on an ordinary Mac or Linux host because it loads only the pinned compiler and Std.

A worked three-by-three audit

Let

\[ H= \begin{bmatrix} 3&0&0\\ 0&-1&0\\ 0&0&-1 \end{bmatrix}. \]

The decreasing eigenvalue vector is

\[ \Lambda(H)=(3,-1,-1). \]

Its counting measure and empirical measure are

\[ N_H=\delta_3+2\delta_{-1}, \qquad L_H=\frac13\delta_3+\frac23\delta_{-1}. \]

The total masses are

\[ N_H(\mathbb R)=3, \qquad L_H(\mathbb R)=1. \]

The first counting moment is

\[ \int x\,\mathrm dN_H(x)=3-1-1=1=\operatorname{Tr}(H). \]

The second is

\[ \int x^2\,\mathrm dN_H(x)=9+1+1=11 =\operatorname{Tr}(H^2). \]

The empirical moments are \(1/3\) and \(11/3\), respectively. If \(U\) is any three-dimensional unitary matrix and \(K=UHU^*\), then \(K\) will usually have nondiagonal entries, but the checked invariance theorems give

\[ \Lambda(K)=\Lambda(H),\qquad N_K=N_H,\qquad L_K=L_H. \]

No probability enters this example. If a random unitary were sampled and used to rotate \(H\), every realization would still have the same deterministic empirical measure. A probability law on those measures would therefore be a Dirac law at \(L_H\), provided the random construction and the relevant map were shown measurable. That final sentence illustrates the next level; it is not a declaration added by RMT-10A.

Physics: spectra are the basis-independent energy record

In finite-dimensional quantum mechanics, an observable such as a Hamiltonian is represented by a Hermitian operator. Hermiticity makes measurement outcomes real and supplies an orthonormal eigenbasis. The eigenvalues of the Hamiltonian are its possible energy levels. A unitary basis change alters the matrix coordinates but not those energies.

For one finite Hamiltonian, the empirical spectral measure is therefore a compact ledger of energy levels with degeneracies. If an energy has a multidimensional eigenspace, the repeated atom records that degeneracy. The measure does not record eigenvectors, transition amplitudes, or which basis vectors span the degenerate subspace.

For a random Hamiltonian ensemble, a law over empirical spectral measures can describe sample-to-sample variation of the global energy-level distribution. That is only a starting point for quantum-chaos questions. Local spacing statistics typically require ordering, rescaling, and unfolding. Spectral form factors use pairwise phase information across levels. Eigenvector statistics need information discarded by \(L_H\). None is present merely because an empirical measure has been defined.

Dyson’s symmetry classification connects unitary symmetry classes with quantum-mechanical antiunitary symmetries (Dyson). That physics motivates why GUE and unitary congruence matter here. It does not imply that every physical Hamiltonian is GUE-distributed, nor does RMT-10A formalize a Hamiltonian dynamics model.

Empirical spectral distribution in the wider literature

The phrase empirical spectral distribution (ESD) is used for normalized eigenvalue counting in both Hermitian and non-Hermitian random-matrix theory. The codomain changes with the spectrum. Hermitian eigenvalues lie on \(\mathbb R\); a general complex matrix may have eigenvalues in \(\mathbb C\).

Tao, Vu, and Krishnapur define the ESD of a general complex matrix by counting its complex eigenvalues with equal weight, then study limiting distributions for normalized random matrices and prove circular-law results (Tao, Vu, and Krishnapur). That paper is useful here as a primary example of the finite normalized-counting convention and of the distinction between a sample ESD and an asymptotic law.

Its theorem is not a source for the present Hermitian claims. The paper’s matrices are not restricted to be Hermitian, its eigenvalues live in the complex plane, and its target asymptotic distribution is the circular law. RMT-10A proves no result from that asymptotic argument. The citation is deliberately scoped to shared vocabulary and measure architecture.

The complete public API

The module exposes twenty-six public declarations. The following atlas keeps unconditional algebra separate from conditional measure-valued probability.

Ordered finite spectrum

DeclarationExact role
orderedHermitianEigenvaluesDecreasing real eigenvalue vector on Fin n, built from eigenvalues₀ by an order-preserving cast
orderedHermitianEigenvalues_antitoneLower indices carry no smaller eigenvalues
trace_eq_sum_orderedHermitianEigenvaluesOrdinary complex trace equals the sum of ordered real eigenvalues
trace_sq_eq_sum_sq_orderedHermitianEigenvaluesTrace of the square equals the sum of squared ordered eigenvalues
orderedHermitianEigenvalues_hermitianCongruenceIntrinsic unitary congruence preserves the entire ordered vector

All five are unconditional finite-dimensional algebra.

Spectral counting measure

DeclarationExact role
spectralCountingMeasureFinite sum of one Dirac mass per ordered eigenvalue slot
spectralCountingMeasure_hermitianCongruencePointwise unitary invariance
spectralCountingMeasure_zeroEmpty spectrum gives the zero measure
spectralCountingMeasure_univTotal mass is the matrix dimension
integral_complex_ofReal_spectralCountingMeasureFirst complex counting-measure moment equals trace
integral_sq_complex_ofReal_spectralCountingMeasureSecond complex counting-measure moment equals trace square
measurable_spectralCountingMeasure_of_measurable_eigenvaluesGiry measurability, conditional on every ordered eigenvalue coordinate being measurable

Only the last row is conditional inside RMT-10A. RMT-10B later discharges its premise and exports measurable_spectralCountingMeasure.

Empirical spectral measure

DeclarationExact role
empiricalSpectralMeasureInverse-dimension scaling of the counting measure, zero at dimension zero
empiricalSpectralMeasure_hermitianCongruencePointwise unitary invariance
empiricalSpectralMeasure_zeroExact zero-dimensional value
empiricalSpectralMeasure_isZeroOrProbabilityUniform total-mass statement for every natural dimension
empiricalSpectralMeasure_succ_isProbabilityProbability-measure theorem in every positive dimension
empiricalSpectralProbabilityPositive-dimensional empirical measure bundled as ProbabilityMeasure ℝ
measurable_empiricalSpectralMeasure_of_measurable_eigenvaluesConditional Giry measurability of the measure-valued map
measurable_empiricalSpectralProbability_of_measurable_eigenvaluesConditional measurability of the positive-dimensional wrapper

The first six are unconditional in RMT-10A. The last two display the premise that RMT-10B discharges before exporting unconditional counterparts.

Ambient totalization and GUE bridge

DeclarationExact role
matrixToHermitianOrZeroConvert a Hermitian ambient matrix to the intrinsic carrier, otherwise return zero
measurable_matrixToHermitianOrZeroUnconditional measurability of that piecewise totalization
matrixToHermitianOrZero_hermitianToMatrixLeft-inverse theorem on every intrinsic Hermitian input
ambientEmpiricalSpectralMeasureCompose the totalization with the intrinsic empirical measure
measurable_ambientEmpiricalSpectralMeasure_of_measurable_eigenvaluesConditional measurability of the ambient observable
map_matrixLaw_ambientEmpiricalSpectralMeasure_eq_map_intrinsicLaw_of_measurable_eigenvaluesConditional equality of the ambient and intrinsic GUE pushforward measures

The final equality is the strongest law-level theorem in the file, and its hypothesis is part of its mathematical content.

Common wrong turns

Calling eigenvalues sorted

Mathlib’s eigenvalues is reindexed by a general finite equivalence. Use eigenvalues₀ when order matters, then transport that index with an order-preserving cast.

Replacing multiplicity by distinct locations

The empirical measure counts index slots. Collapsing repeated values to a set changes total mass before normalization and changes every moment afterward.

Calling the zero-dimensional object a probability measure

The project returns the zero measure at \(n=0\). It has mass zero. Only the n + 1 wrapper is a genuine ProbabilityMeasure.

Confusing an empirical measure with its law

\(L_H\) is one measure on \(\mathbb R\). A random \(H\) may induce a probability law on a space of such measures, but that is a pushforward and needs measurability.

Treating antitonicity as measurability

orderedHermitianEigenvalues_antitone compares coordinates within one fixed matrix. It does not compare nearby matrices and does not imply that \(H\mapsto\lambda_i(H)\) is measurable.

Forgetting which GUE bridge is being quoted

The RMT-10A name ending in of_measurable_eigenvalues assumes coordinatewise eigenvalue measurability. The theorem does not make that premise disappear. RMT-10B’s shorter theorem map_matrixLaw_ambientEmpiricalSpectralMeasure_eq_map_intrinsicLaw has no such argument because that successor imports the proof.

Reading zero totalization as non-Hermitian spectral theory

matrixToHermitianOrZero is an extension policy. On a non-Hermitian input it does not calculate that input’s complex spectrum.

Inferring asymptotics from finite moments

The trace and trace-square identities hold exactly at each finite dimension. They do not prove tightness, convergence, a semicircle law, or universality.

What has and has not been proved

TopicCurrent repository status from RMT-10A onward
Real eigenvalues of an intrinsic finite Hermitian matrixChecked through Mathlib’s finite spectral API
Decreasing eigenvalue vector on Fin nDefined and antitonicity checked
Multiplicity preservationBuilt into the indexed vector and Dirac sum
Trace as first eigenvalue power sumChecked
Trace square as second eigenvalue power sumChecked
Ordered-vector unitary invarianceChecked
Spectral counting measure and total massChecked
First two counting-measure momentsChecked
Empirical spectral measureDefined for all dimensions
Zero-dimensional empirical measureChecked equal to zero
Positive-dimensional probability propertyChecked
Positive-dimensional ProbabilityMeasure wrapperDefined
Measurable Hermitian-or-zero ambient totalizationChecked
Coordinatewise ordered-eigenvalue measurabilityChecked in successor RMT-10B
Unconditional measure-valued GUE observableChecked in successor RMT-10B
Unconditional GUE empirical spectral lawConstructed in successor RMT-10C
Intrinsic/ambient GUE pushforward agreementChecked conditionally here and unconditionally in RMT-10B/RMT-10C
Empirical-moment bridge to RMT-09 expectationsChecked for the first two moments in successor RMT-10C
Joint eigenvalue densityNot checked
Semicircle law or any large-dimension convergenceNot checked
Concentration, rigidity, or extreme-eigenvalue limitsNot checked
Unfolding and local spacing statisticsNot checked
Spectral form factor or out-of-time-order correlatorNot checked

Exercises from trailhead to summit

Trailhead

  1. Compute the ordered eigenvalue vector, counting measure, and empirical measure of a two-dimensional scalar matrix \(aI\). How is multiplicity represented?
  2. For the worked three-dimensional example, evaluate \(L_H(B)\) when \(B=[-2,0]\), \(B=\{-1\}\), and \(B=(0,\infty)\).
  3. Show directly that the total mass of \(\sum_i\delta_{\lambda_i}\) is the number of index slots, even when all eigenvalues coincide.
  4. Explain in plain language why the empirical measure forgets eigenvectors.

Mid-mountain

  1. Starting from \(H=UDU^*\), derive \(\operatorname{Tr}(H^2)=\operatorname{Tr}(D^2)\) one matrix-associativity step at a time.
  2. Prove that equal characteristic polynomials of Hermitian matrices imply equal decreasing eigenvalue vectors. Identify where real roots and sorting enter.
  3. Give a finite permutation of an eigenvalue vector. Prove that its Dirac sum is unchanged while its coordinate-zero value may change.
  4. Compare the types Measure ℝ and ProbabilityMeasure ℝ. Which field or proof is added by the latter?
  5. Propose two possible conventions at dimension zero. Explain why the arbitrary-Dirac convention is total and probabilistic but is not determined by the empty spectrum.

Summit

  1. Assume each \(H\mapsto\lambda_i(H)\) is measurable. Build the measurability proof for \(H\mapsto\sum_i\delta_{\lambda_i(H)}\) from measurable Dirac and finite addition.
  2. Explain why scaling a measurable measure-valued map by a fixed extended nonnegative real preserves measurability in the Giry structure.
  3. Expand the intrinsic-versus-ambient GUE pushforward proof as a commuting diagram. Label the use of Measure.map_map and the left-inverse theorem.
  4. State a continuity or perturbation theorem that would imply coordinatewise eigenvalue measurability. Be precise about the matrix norm and eigenvalue ordering.
  5. Reconstruct the successor RMT-10C definition of the unconditional named GUE empirical spectral law and derive its dimension-zero behavior without inventing a probability measure on an empty spectrum.
  6. Assuming positive dimension, combine the counting-measure moments with RMT-09 to derive the expected first two empirical moments under the project’s Wigner-scaled GUE. Compare your route with RMT-10C and mark which steps belong to deterministic algebra, integrability, and law transport.

Reproduce the chapter

On an ordinary Mac or Linux machine, a reader may run the bounded Std worksheet exactly as shown above. The exact RMT-10A, RMT-10B, and RMT-10C modules import Mathlib and are full project checks. From the repository root, run:

cd formalization
lake env lean NonlinearDynamics/Random/RandomMatrices/HermitianSpectrum.lean
lake env lean NonlinearDynamics/Random/RandomMatrices/HermitianSpectrumContinuity.lean
lake env lean NonlinearDynamics/Random/RandomMatrices/GaussianUnitaryEnsembleSpectrum.lean

These commands use the pinned project dependencies and may require substantial disk space and memory. A green technical build would still not complete the pending human mathematical, editorial, scientific-integrity, and accessibility reviews.

Where to continue

The empirical spectral measure entry is the compact operational reference. Read finite matrix trace moment for the preceding integrability and expectation layer, and unitary invariance for the symmetry distinction used here.

First Exact Finite Gaussian Unitary Ensemble Trace Moments supplies the finite expected trace identities that a later empirical-moment bridge can consume. From Normalized Hermitian Coordinates to Gaussian Unitary Ensemble Invariance constructs the intrinsic law and ambient pushforward identity used by the conditional comparison.

The successor formal milestone now proves coordinatewise continuity and measurability of the ordered Hermitian eigenvalues: Hermitian Spectral Perturbation, Continuity, and Measurability. It removes the hypotheses from the Giry interfaces and proves the ambient-versus-intrinsic GUE pushforward equality unconditionally. The next layer is now available: Finite Gaussian Unitary Ensemble Empirical Spectral Laws and Normalized Moments names the law, packages it as a probability measure, forms its Giry mean, and checks the first two normalized expected sample moments.

References

Mathlib contributors. Spectral theory of Hermitian matrices, Mathlib 4 documentation. This official page proves the finite Hermitian spectral theorem and defines eigenvalues₀, its antitonicity, the generally reindexed eigenvalues, characteristic-polynomial root identities, and trace as an eigenvalue sum.

Mathlib contributors. Dirac measure and counting measure, Mathlib 4 documentation. These official APIs define point masses, their integrals and pushforwards, and counting measure as a sum of Dirac measures. RMT-10A uses the finite indexed version of that atomic pattern.

Mathlib contributors. The Giry measurable structure on measures, Mathlib 4 documentation. This official module equips all measures with the evaluation-generated measurable structure and proves the measurability of the measure constructors used by the conditional spectral interfaces.

Mathlib contributors. Probability measures and probability-measure typeclasses, Mathlib 4 documentation. These official pages define ProbabilityMeasure as a subtype with total mass one and IsZeroOrProbabilityMeasure as the zero-or-unit-mass interface.

Terence Tao, Van Vu, with an appendix by Manjunath Krishnapur. Random matrices: Universality of ESDs and the circular law, arXiv:0807.4898v5, revised 23 April 2009 and accessed 21 July 2026; published in The Annals of Probability 38 (2010), 2023-2065, doi:10.1214/10-AOP534. This primary source defines normalized eigenvalue counting for general complex matrices and studies non-Hermitian circular-law asymptotics. It is cited only for the finite empirical-spectral-distribution convention and the distinction between a sample distribution and its limiting behavior.

Freeman J. Dyson. The Threefold Way: Algebraic Structure of Symmetry Groups and Ensembles in Quantum Mechanics, Journal of Mathematical Physics 3 (1962), 1199-1215. This primary source supplies historical physics context for the unitary symmetry class. It does not supply the project-specific finite measure definitions or any theorem formalized in RMT-10A.

The exact upstream Lean source audited for this chapter is Mathlib commit 81a5d257, the revision pinned by formalization/lake-manifest.json.