|
| 1 | +import Mathlib |
| 2 | + |
| 3 | +-- let X be a Banach space |
| 4 | +variable {X : Type*} [NormedAddCommGroup X] [NormedSpace ℂ X] |
| 5 | +-- and T be a compact operator on it |
| 6 | +variable {T : X →L[ℂ] X} (hT : IsCompactOperator T) |
| 7 | + |
| 8 | +open Module.End |
| 9 | + |
| 10 | +open Filter Topology in |
| 11 | +theorem far_away {μ : ℂ} (hμ : μ ≠ 0) (hT : IsCompactOperator T) |
| 12 | + (h : ¬ HasEigenvalue (T : X →ₗ[ℂ] X) μ) : |
| 13 | + ∃ c > 0, ∀ x, c * ‖x‖ ≤ ‖(T - μ • 1) x‖ := by |
| 14 | + -- By homogeneity, it suffices to establish the claim for unit vectors x. |
| 15 | + suffices ∃ c > 0, ∀ x, ‖x‖ = 1 → c ≤ ‖(T - μ • 1) x‖ by |
| 16 | + obtain ⟨c, hc', hc⟩ := this |
| 17 | + refine ⟨c, hc', fun x ↦ ?_⟩ |
| 18 | + obtain h | h := eq_or_ne x 0 |
| 19 | + · simp [h] |
| 20 | + simpa [norm_smul, le_inv_mul_iff₀', norm_pos_iff, h] using hc _ (norm_smul_inv_norm (𝕜 := ℂ) h) |
| 21 | + -- Suppose not, then we can find a sequence of unit vectors xₙ such that (T - μ • 1) xₙ → 0. |
| 22 | + by_contra! |
| 23 | + obtain ⟨φ, hφ_anti, hφ_pos, hφ⟩ := exists_seq_strictAnti_tendsto (0 : ℝ) |
| 24 | + have : ∀ n, ∃ x, ‖x‖ = 1 ∧ ‖(T - μ • 1) x‖ < φ n := by |
| 25 | + intro n |
| 26 | + exact this (φ n) (hφ_pos n) |
| 27 | + choose x hx_norm hx_bound using this |
| 28 | + have hx_lim : Tendsto (fun n ↦ (T - μ • 1) (x n)) atTop (𝓝 0) := squeeze_zero_norm (by grind) hφ |
| 29 | + -- Define the sequence of vectors yₙ := T xₙ |
| 30 | + let y_ (n : ℕ) : X := T (x n) |
| 31 | + -- which are bounded away from zero. |
| 32 | + have hy_lower : ∀ᶠ n in atTop, ‖μ‖ / 2 ≤ ‖y_ n‖ := by |
| 33 | + filter_upwards [hφ.eventually_le_const (show ‖μ‖ / 2 > 0 by positivity)] with n hn |
| 34 | + have h₁ : ‖T (x n) - μ • x n‖ < φ n := by simpa using hx_bound n |
| 35 | + have h₂ : ‖μ‖ ≤ ‖T (x n)‖ + ‖T (x n) - μ • x n‖ := by |
| 36 | + simpa [norm_smul, hx_norm] using norm_le_norm_add_norm_sub (T (x n)) (μ • x n) |
| 37 | + grind |
| 38 | + -- The sequence yₙ is contained in the image of the closed unit ball under T, which is compact, |
| 39 | + -- since T is, so we can extract a convergent subsequence, and say y_ (ψ n) → y. |
| 40 | + obtain ⟨K, hK, hK'⟩ := hT.image_closedBall_subset_compact 1 |
| 41 | + obtain ⟨y, hyK, ψ, hψ, hψy⟩ := hK.tendsto_subseq (x := y_) (fun n ↦ hK' ⟨x n, by simp [*], rfl⟩) |
| 42 | + -- However (T - μ) yₙ = T (T - μ • 1) xₙ → 0 |
| 43 | + have hy_lim : Tendsto (fun n ↦ (T - μ • 1) (y_ n)) atTop (nhds 0) := by |
| 44 | + have : Tendsto (fun n ↦ _) _ _ := T.continuous.continuousAt.tendsto.comp hx_lim |
| 45 | + simpa using this |
| 46 | + -- so (T - μ) y = 0. |
| 47 | + have hy_eigen' : (T - μ • 1) y = 0 := by |
| 48 | + apply tendsto_nhds_unique _ (hy_lim.comp hψ.tendsto_atTop) |
| 49 | + have : Continuous (T - μ • 1 : X →L[ℂ] X) := by fun_prop |
| 50 | + exact this.continuousAt.tendsto.comp hψy |
| 51 | + -- Since yₙ are bounded away from 0, we must have y ≠ 0. |
| 52 | + have hy_ne : y ≠ 0 := by |
| 53 | + rintro rfl |
| 54 | + suffices ∀ᶠ n : ℕ in atTop, False by rwa [eventually_const] at this |
| 55 | + rw [NormedAddCommGroup.tendsto_nhds_zero] at hψy |
| 56 | + specialize hψy (‖μ‖ / 2) (by positivity) |
| 57 | + filter_upwards [hψ.tendsto_atTop.eventually hy_lower, hψy] using by grind |
| 58 | + -- So y is an eigenvector of T with eigenvalue μ, |
| 59 | + have : HasEigenvector (T : X →ₗ[ℂ] X) μ y := by |
| 60 | + rw [hasEigenvector_iff] |
| 61 | + rw [mem_genEigenspace_one] |
| 62 | + simpa [hy_ne, sub_eq_zero] using hy_eigen' |
| 63 | + -- which is a contradiction. |
| 64 | + exact h (hasEigenvalue_of_hasEigenvector this) |
| 65 | + |
| 66 | +theorem fredholm_alternative [CompleteSpace X] {μ : ℂ} (hμ : μ ≠ 0) : |
| 67 | + HasEigenvalue (T : X →ₗ[ℂ] X) μ ∨ μ ∈ resolventSet ℂ T := by |
| 68 | + by_contra! |
| 69 | + obtain ⟨h₁, h₂⟩ := this |
| 70 | + let S := (T - μ • 1) |
| 71 | + replace h₂ : ¬ (S : X → X).Bijective := by |
| 72 | + rw [spectrum.mem_resolventSet_iff, ← IsUnit.neg_iff, |
| 73 | + ContinuousLinearMap.isUnit_iff_bijective] at h₂ |
| 74 | + convert h₂ |
| 75 | + ext x |
| 76 | + simp [S] |
| 77 | + have : (S : X → X).Injective := by |
| 78 | + sorry |
| 79 | + sorry |
0 commit comments