Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Chapter ResolventCorrespondence

Definition
ChapterResolventCorrespondence

by leonardopedro · Oct 25, 2026 · Mathlib 0df444a (Lean v4.33.1)

definitionsformalizationtimepiece

Formal definitions for the timepiece Lean 4 formalization (source chapter BookProof/ChapterResolventCorrespondence.lean): generated def bundle for ChapterResolventCorrespondence. See BookProof/ChapterResolventCorrespondence.lean for full context.

Definition code
import Definitions.Def_ChapterNonnegResolvent
import Definitions.Def_ChapterClosureUniqueness
import Definitions.Def_ChapterNonnegSquareRoot
import Definitions.Def_ChapterPositiveSquareRootUnique
import Definitions.Def_ChapterA4
import Mathlib


/-!
# The resolvent correspondence: `T ↦ (1 + T)⁻¹` is a bijection onto the positive contractions

`BookProof.ChapterPositiveSquareRootUnique` attaches to every non-negative self-adjoint
linear relation `T` on a complex Hilbert space `F` the everywhere-defined bounded
operator `invCLM hT = (1 + T)⁻¹`, and shows that it is a positive contraction
(`invCLM_nonneg`, `invCLM_le_one`) from which `T` is recovered (`rel_eq_of_invCLM_eq`).

This chapter closes the correspondence in the other direction: **every** positive
contraction `R` (`0 ≤ R ≤ 1`) is the resolvent of one, and only one, non-negative
self-adjoint linear relation, namely

`relOfCLM R = {(R y, y − R y) : y ∈ F}`,

formally `R⁻¹ − 1`.  So `T ↦ (1 + T)⁻¹` is a bijection

`{non-negative self-adjoint linear relations on F} ≃ {R : F →L[ℂ] F | 0 ≤ R ≤ 1}`,

with inverse `R ↦ relOfCLM R` (`relOfCLM_invCLM`, `invCLM_relOfCLM`,
`existsUnique_isNonnegSelfAdjoint_invCLM_eq`).  Under it, the operators — the
single-valued relations — correspond to the *injective* positive contractions
(`singleValued_relOfCLM_iff`), and the domain of `T` is the range of `R`
(`mem_domain_relOfCLM_iff`).

The proof of non-negativity is the identity `R (1 − R) = (R^{1/2}(1−R)^{1/2})²`
(`mul_one_sub_eq_midOp_sq`), which makes `⟪R y, y − R y⟫ = ‖R^{1/2}(1−R)^{1/2} y‖²`
manifestly non-negative.
-/

namespace BookProof.ResolventCorrespondence

open BookProof.ClosureUniqueness BookProof.UnboundedPolar BookProof.PositiveSquareRoot
open BookProof.NonnegSquareRoot
open scoped ComplexOrder

variable {F : Type*} [NormedAddCommGroup F] [InnerProductSpace ℂ F] [CompleteSpace F]
variable {R : F →L[ℂ] F} {T : Submodule ℂ (F × F)}

/-! ## The relation attached to a bounded operator -/

/-- A non-negative bounded operator is self-adjoint. -/
theorem isSelfAdjoint_of_nonneg {A : F →L[ℂ] F} (hA : 0 ≤ A) : IsSelfAdjoint A :=
  ContinuousLinearMap.isSelfAdjoint_iff_isSymmetric.2
    ((ContinuousLinearMap.nonneg_iff_isPositive A).1 hA).1


/-- **`R⁻¹ − 1` as a linear relation**: the set of pairs `(R y, y − R y)`. -/
noncomputable def relOfCLM (R : F →L[ℂ] F) : Submodule ℂ (F × F) :=
  LinearMap.range (R.toLinearMap.prod ((1 : F →L[ℂ] F) - R).toLinearMap)

omit [CompleteSpace F] in
theorem mem_relOfCLM_iff {p : F × F} :
    p ∈ relOfCLM R ↔ ∃ y, R y = p.1 ∧ y - R y = p.2 := by
  constructor
  · rintro ⟨y, hy⟩
    exact ⟨y, by simp [← hy], by simp [← hy]⟩
  · rintro ⟨y, h1, h2⟩
    exact ⟨y, Prod.ext h1 (by simpa using h2)⟩

omit [CompleteSpace F] in
theorem mem_relOfCLM (R : F →L[ℂ] F) (y : F) : (R y, y - R y) ∈ relOfCLM R :=
  mem_relOfCLM_iff.2 ⟨y, rfl, rfl⟩

/-! ## `relOfCLM R` is non-negative and self-adjoint -/

/-- `R (1 − R) = M²` for `M = R^{1/2} (1 − R)^{1/2}`. -/
theorem mul_one_sub_eq_midOp_sq (h0 : 0 ≤ R) (h1 : R ≤ 1) :
    R * (1 - R) = midOp R * midOp R := by
  have hS : sqrtOp R * sqrtOp R = R := sqrtOp_mul_self h0 h1
  have hD : coSqrtOp R * coSqrtOp R = 1 - R := coSqrtOp_mul_self h0 h1
  have hSD : sqrtOp R * coSqrtOp R = midOp R := sqrtOp_mul_coSqrtOp h0
  have hDS : coSqrtOp R * sqrtOp R = midOp R := coSqrtOp_mul_sqrtOp h0
  calc R * (1 - R) = (sqrtOp R * sqrtOp R) * (coSqrtOp R * coSqrtOp R) := by rw [hS, hD]
    _ = sqrtOp R * (sqrtOp R * coSqrtOp R) * coSqrtOp R := by
        simp only [mul_assoc]
    _ = sqrtOp R * (coSqrtOp R * sqrtOp R) * coSqrtOp R := by rw [hSD, hDS]
    _ = (sqrtOp R * coSqrtOp R) * (sqrtOp R * coSqrtOp R) := by
        simp only [mul_assoc]
    _ = midOp R * midOp R := by rw [hSD]

/-- **`R⁻¹ − 1` is symmetric.** -/
theorem relOfCLM_le_adjPairs (hR : IsSelfAdjoint R) : relOfCLM R ≤ adjPairs (relOfCLM R) := by
  intro p hp q hq
  obtain ⟨y, hy1, hy2⟩ := mem_relOfCLM_iff.1 hp
  obtain ⟨z, hz1, hz2⟩ := mem_relOfCLM_iff.1 hq
  rw [← hy1, ← hy2, ← hz1, ← hz2, inner_sub_left, inner_sub_right,
    ← inner_isSelfAdjoint_left hR z y]

omit [CompleteSpace F] in
/-- **`1 + (R⁻¹ − 1)` is surjective.** -/
theorem exists_mem_relOfCLM_add (R : F →L[ℂ] F) (h : F) :
    ∃ p ∈ relOfCLM R, p.1 + p.2 = h :=
  ⟨(R h, h - R h), mem_relOfCLM R h, by simp⟩

/-- **`R⁻¹ − 1` is self-adjoint.** -/
theorem adjPairs_relOfCLM (hR : IsSelfAdjoint R) : adjPairs (relOfCLM R) = relOfCLM R :=
  adjPairs_eq_self_of_symmetric_of_surjective (relOfCLM_le_adjPairs hR)
    (exists_mem_relOfCLM_add R)

/-- **The quadratic form of `R⁻¹ − 1` is `‖M y‖²`** for `M = R^{1/2}(1−R)^{1/2}` and
`y = x + T x` the point of `F` the pair comes from. -/
theorem inner_relOfCLM (h0 : 0 ≤ R) (h1 : R ≤ 1) {p : F × F} (hp : p ∈ relOfCLM R) :
    (inner ℂ p.1 p.2 : ℂ) = ((‖midOp R (p.1 + p.2)‖ ^ 2 : ℝ) : ℂ) := by
  obtain ⟨y, hy1, hy2⟩ := mem_relOfCLM_iff.1 hp
  have hR : IsSelfAdjoint R := isSelfAdjoint_of_nonneg h0
  have hM : IsSelfAdjoint (midOp R) := isSelfAdjoint_of_nonneg (midOp_nonneg R)
  have hkey : (inner ℂ (R y) (y - R y) : ℂ) = ((‖midOp R y‖ ^ 2 : ℝ) : ℂ) := by
    have happ : (R * (1 - R)) y = R (y - R y) := by
      simp [ContinuousLinearMap.mul_apply]
    have h2 : (inner ℂ (R y) (y - R y) : ℂ) = inner ℂ y ((R * (1 - R)) y) := by
      rw [happ]
      exact inner_isSelfAdjoint_left hR y (y - R y)
    rw [h2, mul_one_sub_eq_midOp_sq h0 h1]
    have h3 : ((midOp R * midOp R : F →L[ℂ] F)) y = midOp R (midOp R y) := rfl
    rw [h3, ← inner_isSelfAdjoint_left hM y (midOp R y), inner_self_eq_norm_sq_to_K]
    norm_cast
  have hsum : R y + (y - R y) = y := by abel
  rw [← hy1, ← hy2, hsum]
  exact hkey

/-- **`R⁻¹ − 1 ≥ 0`.** -/
theorem relOfCLM_quadForm_nonneg (h0 : 0 ≤ R) (h1 : R ≤ 1) {p : F × F} (hp : p ∈ relOfCLM R) :
    0 ≤ (inner ℂ p.1 p.2 : ℂ).re := by
  rw [inner_relOfCLM h0 h1 hp, Complex.ofReal_re]
  positivity

/-- **`R⁻¹ − 1` is a non-negative self-adjoint linear relation.** -/
theorem isNonnegSelfAdjoint_relOfCLM (h0 : 0 ≤ R) (h1 : R ≤ 1) :
    IsNonnegSelfAdjoint (relOfCLM R) where
  adj := adjPairs_relOfCLM (isSelfAdjoint_of_nonneg h0)
  nonneg := fun _ hp => relOfCLM_quadForm_nonneg h0 h1 hp

/-! ## The two constructions are mutually inverse -/

/-- **`(1 + (R⁻¹ − 1))⁻¹ = R`.** -/
theorem invCLM_relOfCLM (h0 : 0 ≤ R) (h1 : R ≤ 1) :
    invCLM (isNonnegSelfAdjoint_relOfCLM h0 h1) = R := by
  ext h
  exact invCLM_eq_of_mem _ (mem_relOfCLM R h)

/-- **`((1 + T)⁻¹)⁻¹ − 1 = T`.** -/
theorem relOfCLM_invCLM (hT : IsNonnegSelfAdjoint T) : relOfCLM (invCLM hT) = T :=
  rel_eq_of_invCLM_eq
    (isNonnegSelfAdjoint_relOfCLM (invCLM_nonneg hT) (invCLM_le_one hT)) hT
    (invCLM_relOfCLM (invCLM_nonneg hT) (invCLM_le_one hT))

/-- **The resolvent correspondence.**  Every positive contraction is the resolvent
`(1 + T)⁻¹` of exactly one non-negative self-adjoint linear relation `T`. -/
theorem existsUnique_isNonnegSelfAdjoint_invCLM_eq (h0 : 0 ≤ R) (h1 : R ≤ 1) :
    ∃! T : Submodule ℂ (F × F), ∃ hT : IsNonnegSelfAdjoint T, invCLM hT = R := by
  refine ⟨relOfCLM R, ⟨isNonnegSelfAdjoint_relOfCLM h0 h1, invCLM_relOfCLM h0 h1⟩, ?_⟩
  rintro S ⟨hS, hSR⟩
  exact rel_eq_of_invCLM_eq hS (isNonnegSelfAdjoint_relOfCLM h0 h1)
    (by rw [hSR, invCLM_relOfCLM h0 h1])

/-! ## Operators correspond to injective contractions -/

omit [CompleteSpace F] in
/-- **`R⁻¹ − 1` is single-valued (an operator) exactly when `R` is injective.** -/
theorem singleValued_relOfCLM_iff :
    (∀ w : F, ((0 : F), w) ∈ relOfCLM R → w = 0) ↔ Function.Injective R := by
  constructor
  · intro hsv y z hyz
    have h0 : R (y - z) = 0 := by rw [map_sub, hyz, sub_self]
    have hmem : ((0 : F), y - z) ∈ relOfCLM R := by
      have := mem_relOfCLM R (y - z)
      rwa [h0, sub_zero] at this
    exact sub_eq_zero.1 (hsv _ hmem)
  · intro hinj w hw
    obtain ⟨y, hy1, hy2⟩ := mem_relOfCLM_iff.1 hw
    simp only at hy1 hy2
    have hy0 : y = 0 := by
      have : R y = R 0 := by rw [hy1, map_zero]
      exact hinj this
    rw [← hy2, hy0, map_zero, sub_zero]

omit [CompleteSpace F] in
/-- The domain of `R⁻¹ − 1` is the range of `R`. -/
theorem mem_domain_relOfCLM_iff {x : F} :
    (∃ w, (x, w) ∈ relOfCLM R) ↔ x ∈ LinearMap.range (R : F →ₗ[ℂ] F) := by
  constructor
  · rintro ⟨w, hw⟩
    obtain ⟨y, hy1, -⟩ := mem_relOfCLM_iff.1 hw
    exact ⟨y, hy1⟩
  · rintro ⟨y, hy⟩
    exact ⟨y - R y, mem_relOfCLM_iff.2 ⟨y, hy, rfl⟩⟩

end BookProof.ResolventCorrespondence
Source
https://github.com/leonardopedro/timepiece/blob/61595bc/BookProof/ChapterResolventCorrespondence.lean

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me