Skip to content

Commit 5f53e0e

Browse files
committed
new file
1 parent d50d677 commit 5f53e0e

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import Mathlib.Analysis.CStarAlgebra.ContinuousLinearMap
2+
import Mathlib.Analysis.CStarAlgebra.Spectrum
3+
import Mathlib.Analysis.InnerProductSpace.Spectrum
4+
import Mathlib.Analysis.Normed.Algebra.GelfandFormula
5+
import Mathlib.Analysis.Normed.Module.RCLike.Basic
6+
import Mathlib.Analysis.Normed.Module.RieszLemma
7+
import Mathlib.Analysis.Normed.Operator.Banach
8+
import Mathlib.Analysis.Normed.Operator.Compact
9+
import Mathlib.LinearAlgebra.Eigenspace.Basic
10+
11+
section fredholm
12+
13+
variable {𝕜 X : Type*} [RCLike 𝕜] [NormedAddCommGroup X] [NormedSpace 𝕜 X]
14+
variable {T : X →L[𝕜] X}
15+
theorem fredholm_alternative [CompleteSpace X] (hT : IsCompactOperator T) {μ : 𝕜} (hμ : μ ≠ 0) :
16+
Module.End.HasEigenvalue (T : Module.End 𝕜 X) μ ∨ μ ∈ resolventSet 𝕜 T := by
17+
sorry
18+
19+
end fredholm
20+
21+
section spectral
22+
23+
open Module.End
24+
25+
variable {X : Type*} [NormedAddCommGroup X] [InnerProductSpace ℂ X]
26+
variable {T : X →L[ℂ] X}
27+
theorem spectral_theorem_aux [CompleteSpace X] (hT : T.IsSymmetric) (hT' : IsCompactOperator T) :
28+
(⨆ μ, eigenspace (T : Module.End ℂ X) μ)ᗮ = ⊥ := by
29+
let S : (⨆ μ, eigenspace T μ : Submodule ℂ X)ᗮ →L[ℂ] (⨆ μ, eigenspace T μ : Submodule ℂ X)ᗮ :=
30+
{ cont := by
31+
simp only [LinearMap.restrict, LinearMap.codRestrict, LinearMap.domRestrict_apply,
32+
ContinuousLinearMap.coe_coe, AddHom.toFun_eq_coe, AddHom.coe_mk]
33+
fun_prop
34+
__ := T.restrict hT.orthogonalComplement_iSup_eigenspaces_invariant }
35+
have hS_compact : IsCompactOperator S :=
36+
hT'.restrict' hT.orthogonalComplement_iSup_eigenspaces_invariant
37+
have hS_symm : S.IsSymmetric :=
38+
hT.restrict_invariant (hT.orthogonalComplement_iSup_eigenspaces_invariant)
39+
have hS μ : eigenspace (S : Module.End ℂ (⨆ μ, eigenspace T μ : Submodule ℂ X)ᗮ) μ = ⊥ := by
40+
rw [Submodule.eq_bot_iff]
41+
intro v hv
42+
rw [Subtype.ext_iff, Submodule.coe_zero, ← Submodule.mem_bot ℂ,
43+
← Submodule.inf_orthogonal_eq_bot (⨆ μ, eigenspace T μ : Submodule ℂ X)]
44+
refine ⟨Submodule.mem_iSup_of_mem μ ?_, v.2
45+
rw [mem_eigenspace_iff] at hv ⊢
46+
exact Subtype.ext_iff.mp hv
47+
have h μ : μ ∈ spectrum ℂ S → μ = 0 := by
48+
rw [spectrum, Set.mem_compl_iff, not_imp_comm]
49+
intro hμ
50+
apply (fredholm_alternative hS_compact hμ).resolve_left
51+
rw [hasEigenvalue_iff, not_ne_iff]
52+
apply hS
53+
by_contra! hV
54+
rw [← Submodule.nontrivial_iff_ne_bot] at hV
55+
replace h : spectrum ℂ S = {0} :=
56+
Set.eq_singleton_iff_nonempty_unique_mem.mpr ⟨spectrum.nonempty S, h⟩
57+
obtain ⟨μ, hμ1, hμ2⟩ := spectrum.exists_nnnorm_eq_spectralRadius S
58+
rw [h, Set.mem_singleton_iff] at hμ1
59+
rw [hμ1, nnnorm_zero, ENNReal.coe_zero] at hμ2
60+
replace h := hS_symm.isSelfAdjoint.toReal_spectralRadius_complex_eq_norm.symm
61+
rw [← hμ2, ENNReal.toReal_zero, norm_eq_zero] at h
62+
specialize hS 0
63+
simp [h] at hS
64+
65+
variable {X : Type*} [NormedAddCommGroup X] [InnerProductSpace ℂ X]
66+
variable {T : X →L[ℂ] X}
67+
theorem spectral_theorem [CompleteSpace X] (hT : T.IsSymmetric) (hT' : IsCompactOperator T) :
68+
(⨆ μ, eigenspace (T : Module.End ℂ X) μ) = ⊤ := by
69+
have := spectral_theorem_aux hT hT'
70+
sorry
71+
72+
end spectral

0 commit comments

Comments
 (0)