Documentation

CsdLean4.Mathlib.Analysis.Matrix.RieszProjector

The Riesz projector of a Hermitian matrix #

Category: 1-Mathlib (CSD-free; staged for upstream). BACKLOG #158 (out of #88, the first brick of Kato's adiabatic theorem).

For a Hermitian H : Matrix (Fin N) (Fin N) ℂ, a centre c and a radius r ≥ 0 such that no eigenvalue of H lies on the circle |z − c| = r, the Riesz projector

rieszProj hH c r = (2πi)⁻¹ ∮_{|z−c|=r} (z·1 − H)⁻¹ dz

is the orthogonal projection onto the span of the eigenvectors whose eigenvalue lies inside the disc. Mathlib has the continuous functional calculus for a self-adjoint element, but no projector of an isolated part of the spectrum written as a contour integral — and it is the integral form that the adiabatic theorem differentiates along a path (#159).

Honest scope #

References: T. Kato, Perturbation Theory for Linear Operators, I §5.3 (the Riesz projector); Mathlib/Analysis/Matrix/Spectrum.lean (spectral_theorem, eigenvectorUnitary), Mathlib/MeasureTheory/Integral/CircleIntegral.lean (integral_sub_inv_of_mem_ball, integral_smul_const, integral_fun_sum), Mathlib/Analysis/Complex/CauchyIntegral.lean; specs/BACKLOG.md #158, #88.

noncomputable def Matrix.rieszProj {N : ℕ} (H : Matrix (Fin N) (Fin N) ℂ) (c : ℂ) (r : ℝ) :
Matrix (Fin N) (Fin N) ℂ

The Riesz projector of a matrix H over the disc |z − c| < r: (2πi)⁻¹ ∮_{|z−c|=r} (z·1 − H)⁻¹ dz.

Equations
Instances For

    The eigenbasis and the conjugation d ↦ U diag(d) U† #

    noncomputable def Matrix.IsHermitian.eigU {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) :
    Matrix (Fin N) (Fin N) ℂ

    The eigenvector unitary, as a matrix.

    Equations
    Instances For
      noncomputable def Matrix.IsHermitian.eigC {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (j : Fin N) :

      The j-th eigenvalue, as a complex number.

      Equations
      Instances For
        noncomputable def Matrix.IsHermitian.conjD {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (d : Fin N → ℂ) :
        Matrix (Fin N) (Fin N) ℂ

        The conjugation of a diagonal by the eigenvector unitary: U diag(d) U†. Every operator in this file is of this form, and the form is closed under the algebra operations.

        Equations
        Instances For
          theorem Matrix.IsHermitian.eq_conjD {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) :
          H = hH.conjD hH.eigC

          The spectral theorem, in product form.

          theorem Matrix.IsHermitian.conjD_mul_conjD {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (d e : Fin N → ℂ) :
          hH.conjD d * hH.conjD e = hH.conjD (d * e)
          theorem Matrix.IsHermitian.conjD_one {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) :
          hH.conjD 1 = 1
          theorem Matrix.IsHermitian.conjD_smul {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (a : ℂ) (d : Fin N → ℂ) :
          hH.conjD (a • d) = a • hH.conjD d
          theorem Matrix.IsHermitian.conjD_sub {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (d e : Fin N → ℂ) :
          hH.conjD (d - e) = hH.conjD d - hH.conjD e
          theorem Matrix.IsHermitian.conjD_conjTranspose {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (d : Fin N → ℂ) :
          theorem Matrix.IsHermitian.rank_conjD {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (d : Fin N → ℂ) :
          (hH.conjD d).rank = (diagonal d).rank
          theorem Matrix.IsHermitian.conjD_mulVec_eigenvectorBasis {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (d : Fin N → ℂ) (j : Fin N) :

          On the j-th eigenvector, conjD d acts as the scalar d j.

          noncomputable def Matrix.IsHermitian.eigenProj {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (j : Fin N) :
          Matrix (Fin N) (Fin N) ℂ

          The eigenprojection of the j-th eigenvector: U Eⱼⱼ U†.

          Equations
          Instances For
            theorem Matrix.diagonal_eq_sum_smul {N : ℕ} (d : Fin N → ℂ) :
            diagonal d = ∑ j : Fin N, d j • diagonal (Pi.single j 1)

            A diagonal matrix is the sum of its entries times the unit diagonals.

            theorem Matrix.IsHermitian.conjD_eq_sum {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (d : Fin N → ℂ) :
            hH.conjD d = ∑ j : Fin N, d j • hH.eigenProj j

            conjD d as a combination of eigenprojections.

            The resolvent in the eigenbasis #

            theorem Matrix.IsHermitian.smul_one_sub_eq_conjD {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (z : ℂ) :
            z • 1 - H = hH.conjD fun (j : Fin N) => z - hH.eigC j

            z·1 − H in the eigenbasis.

            theorem Matrix.IsHermitian.inv_smul_one_sub_eq_conjD {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {z : ℂ} (hz : ∀ (j : Fin N), z ≠ hH.eigC j) :
            (z • 1 - H)⁻¹ = hH.conjD fun (j : Fin N) => (z - hH.eigC j)⁻¹

            ★ The resolvent in the eigenbasis, off the spectrum.

            theorem Matrix.IsHermitian.inv_smul_one_sub_eq_sum {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {z : ℂ} (hz : ∀ (j : Fin N), z ≠ hH.eigC j) :
            (z • 1 - H)⁻¹ = ∑ j : Fin N, (z - hH.eigC j)⁻¹ • hH.eigenProj j

            The resolvent as a combination of eigenprojections.

            The Cauchy evaluation #

            theorem circleIntegral_sub_inv_eq_ite {c μ : ℂ} {r : ℝ} (hr : 0 ≤ r) (hne : dist μ c ≠ r) :
            ∮ (z : ℂ) in C(c, r), (z - μ)⁻¹ = if dist μ c < r then 2 * ↑Real.pi * Complex.I else 0

            ∮ (z − μ)⁻¹ dz over the circle |z − c| = r is 2πi inside and 0 outside.

            The Riesz projector #

            theorem Matrix.IsHermitian.ne_eigC_of_mem_sphere {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {c z : ℂ} {r : ℝ} (hcirc : ∀ (j : Fin N), dist (hH.eigC j) c ≠ r) (hz : z ∈ Metric.sphere c r) (j : Fin N) :
            z ≠ hH.eigC j

            No eigenvalue on the circle means the resolvent is defined on it.

            theorem Matrix.IsHermitian.circleIntegrable_term {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {c : ℂ} {r : ℝ} (hr : 0 ≤ r) (hcirc : ∀ (j : Fin N), dist (hH.eigC j) c ≠ r) (j : Fin N) :
            CircleIntegrable (fun (z : ℂ) => (z - hH.eigC j)⁻¹ • hH.eigenProj j) c r

            Each term (z − μⱼ)⁻¹ • Eⱼ is circle-integrable when μⱼ is off the circle.

            noncomputable def Matrix.IsHermitian.discInd {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (c : ℂ) (r : ℝ) (j : Fin N) :

            The indicator of the disc, on the eigenvalues.

            Equations
            Instances For
              theorem Matrix.IsHermitian.rieszProj_eq_sum {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {c : ℂ} {r : ℝ} (hr : 0 ≤ r) (hcirc : ∀ (j : Fin N), dist (hH.eigC j) c ≠ r) :
              H.rieszProj c r = ∑ j : Fin N, hH.discInd c r j • hH.eigenProj j

              ★★ The Riesz projector is the spectral projection onto the eigenvalues in the disc.

              theorem Matrix.IsHermitian.rieszProj_eq_conjD {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {c : ℂ} {r : ℝ} (hr : 0 ≤ r) (hcirc : ∀ (j : Fin N), dist (hH.eigC j) c ≠ r) :
              H.rieszProj c r = hH.conjD (hH.discInd c r)

              ★★ The Riesz projector in the eigenbasis: U diag(𝟙_{|μⱼ−c|<r}) U†.

              The corollaries #

              theorem Matrix.IsHermitian.discInd_mul_self {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (c : ℂ) (r : ℝ) :
              hH.discInd c r * hH.discInd c r = hH.discInd c r
              theorem Matrix.IsHermitian.star_discInd {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) (c : ℂ) (r : ℝ) :
              star (hH.discInd c r) = hH.discInd c r
              theorem Matrix.IsHermitian.rieszProj_mul_self {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {c : ℂ} {r : ℝ} (hr : 0 ≤ r) (hcirc : ∀ (j : Fin N), dist (hH.eigC j) c ≠ r) :
              H.rieszProj c r * H.rieszProj c r = H.rieszProj c r

              Idempotent.

              theorem Matrix.IsHermitian.rieszProj_isHermitian {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {c : ℂ} {r : ℝ} (hr : 0 ≤ r) (hcirc : ∀ (j : Fin N), dist (hH.eigC j) c ≠ r) :

              Hermitian.

              theorem Matrix.IsHermitian.rieszProj_mul_comm {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {c : ℂ} {r : ℝ} (hr : 0 ≤ r) (hcirc : ∀ (j : Fin N), dist (hH.eigC j) c ≠ r) :
              H * H.rieszProj c r = H.rieszProj c r * H

              Commutes with H.

              theorem Matrix.IsHermitian.mul_rieszProj_eq_smul {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {c : ℂ} {r : ℝ} (hr : 0 ≤ r) (hcirc : ∀ (j : Fin N), dist (hH.eigC j) c ≠ r) {lam : ℂ} (hlam : ∀ (j : Fin N), dist (hH.eigC j) c < r → hH.eigC j = lam) :
              H * H.rieszProj c r = lam • H.rieszProj c r

              ★ When the disc isolates a single eigenvalue λ, H P = λ • P.

              theorem Matrix.IsHermitian.rank_rieszProj {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {c : ℂ} {r : ℝ} (hr : 0 ≤ r) (hcirc : ∀ (j : Fin N), dist (hH.eigC j) c ≠ r) :
              (H.rieszProj c r).rank = Fintype.card { j : Fin N // dist (hH.eigC j) c < r }

              The rank is the number of eigenvalues in the disc.

              theorem Matrix.IsHermitian.rieszProj_mulVec_eigenvectorBasis {N : ℕ} {H : Matrix (Fin N) (Fin N) ℂ} (hH : H.IsHermitian) {c : ℂ} {r : ℝ} (hr : 0 ≤ r) (hcirc : ∀ (j : Fin N), dist (hH.eigC j) c ≠ r) (j : Fin N) :

              On the eigenbasis the projector keeps the eigenvectors inside the disc and kills the others.