@@ -24,8 +24,23 @@ simply by proving:
24
24
2. `0 ≤ x ↔ IsSelfAdjoint x ∧ SpectrumRestricts Real.toNNReal x`.
25
25
-/
26
26
27
+ open Set
28
+
27
29
namespace SpectrumRestricts
28
30
31
+ /-- The homeomorphism `spectrum S a ≃ₜ spectrum R a` induced by `SpectrumRestricts a f`. -/
32
+ def homeomorph {R S A : Type *} [Semifield R] [Semifield S] [Ring A]
33
+ [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [TopologicalSpace R]
34
+ [TopologicalSpace S] [ContinuousSMul R S] {a : A} {f : C(S, R)} (h : SpectrumRestricts a f) :
35
+ spectrum S a ≃ₜ spectrum R a where
36
+ toFun := MapsTo.restrict f _ _ h.subset_preimage
37
+ invFun := MapsTo.restrict (algebraMap R S) _ _ (image_subset_iff.mp h.algebraMap_image.subset)
38
+ left_inv x := Subtype.ext <| h.rightInvOn x.2
39
+ right_inv x := Subtype.ext <| h.left_inv x
40
+ continuous_toFun := continuous_induced_rng.mpr <| f.continuous.comp continuous_induced_dom
41
+ continuous_invFun := continuous_induced_rng.mpr <|
42
+ continuous_algebraMap R S |>.comp continuous_induced_dom
43
+
29
44
lemma compactSpace {R S A : Type *} [Semifield R] [Semifield S] [Ring A]
30
45
[Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [TopologicalSpace R]
31
46
[TopologicalSpace S] {a : A} (f : C(S, R)) (h : SpectrumRestricts a f)
@@ -60,23 +75,12 @@ variable [CompleteSpace R]
60
75
61
76
lemma closedEmbedding_starAlgHom {a : A} {φ : C(spectrum S a, S) →⋆ₐ[S] A}
62
77
(hφ : ClosedEmbedding φ) {f : C(S, R)} (h : SpectrumRestricts a f)
63
- (h_isom : Isometry (algebraMap R S)) [h_cpct : CompactSpace (spectrum S a)] :
64
- ClosedEmbedding (h.starAlgHom φ) := by
65
- apply hφ.comp
66
- simp only [RingHom.coe_coe, StarAlgHom.coe_toAlgHom, StarAlgHom.comp_apply,
67
- ContinuousMap.compStarAlgHom'_apply, ContinuousMap.compStarAlgHom_apply]
68
- have : CompactSpace (spectrum R a) := h.compactSpace
69
- apply Isometry.closedEmbedding ?_
70
- simp only [isometry_iff_dist_eq]
71
- refine fun g₁ g₂ ↦ le_antisymm ?_ ?_
72
- all_goals refine (ContinuousMap.dist_le dist_nonneg).mpr fun x ↦ ?_
73
- · simpa [h_isom.dist_eq] using ContinuousMap.dist_apply_le_dist _
74
- · obtain ⟨y, y_mem, hy⟩ : (x : R) ∈ f '' spectrum S a := h.image.symm ▸ x.2
75
- lift y to spectrum S a using y_mem
76
- refine le_of_eq_of_le ?_ <| ContinuousMap.dist_apply_le_dist y
77
- simp only [ContinuousMap.coe_mk, ContinuousMap.comp_apply, StarAlgHom.ofId_apply]
78
- rw [h_isom.dist_eq]
79
- congr <;> exact Subtype.ext hy.symm
78
+ (halg : UniformEmbedding (algebraMap R S)) [CompactSpace (spectrum S a)] :
79
+ ClosedEmbedding (h.starAlgHom φ) :=
80
+ have := h.compactSpace
81
+ hφ.comp <| UniformEmbedding.toClosedEmbedding <| .comp
82
+ (ContinuousMap.uniformEmbedding_comp _ halg)
83
+ (UniformEquiv.arrowCongr h.homeomorph.symm (.refl _) |>.uniformEmbedding)
80
84
81
85
lemma starAlgHom_id {a : A} {φ : C(spectrum S a, S) →⋆ₐ[S] A} {f : C(S, R)}
82
86
(h : SpectrumRestricts a f) (h_id : φ (.restrict (spectrum S a) <| .id S) = a) :
@@ -90,15 +94,16 @@ lemma starAlgHom_id {a : A} {φ : C(spectrum S a, S) →⋆ₐ[S] A} {f : C(S, R
90
94
characterized by: `q a` and the spectrum of `a` restricts to the scalar subring `R` via
91
95
`f : C(S, R)`, then we can get a restricted functional calculus
92
96
`ContinuousFunctionalCalculus R p`. -/
93
- protected theorem cfc (f : C(S, R)) (h_isom : Isometry (algebraMap R S))
97
+ protected theorem cfc (f : C(S, R)) (halg : UniformEmbedding (algebraMap R S))
94
98
(h : ∀ a, p a ↔ q a ∧ SpectrumRestricts a f) (h_cpct : ∀ a, q a → CompactSpace (spectrum S a)) :
95
99
ContinuousFunctionalCalculus R p where
96
100
exists_cfc_of_predicate a ha := by
97
101
refine ⟨((h a).mp ha).2 .starAlgHom (cfcHom ((h a).mp ha).1 (R := S)),
98
102
?hom_closedEmbedding, ?hom_id, ?hom_map_spectrum, ?predicate_hom⟩
99
103
case hom_closedEmbedding =>
100
- exact ((h a).mp ha).2 .closedEmbedding_starAlgHom (cfcHom_closedEmbedding ((h a).mp ha).1 )
101
- h_isom (h_cpct := h_cpct a ((h a).mp ha).1 )
104
+ have := h_cpct a ((h a).mp ha).1
105
+ exact ((h a).mp ha).2 .closedEmbedding_starAlgHom
106
+ (cfcHom_closedEmbedding ((h a).mp ha).1 ) halg
102
107
case hom_id => exact ((h a).mp ha).2 .starAlgHom_id <| cfcHom_id ((h a).mp ha).1
103
108
case hom_map_spectrum =>
104
109
intro g
@@ -128,27 +133,27 @@ protected theorem cfc (f : C(S, R)) (h_isom : Isometry (algebraMap R S))
128
133
129
134
variable [ContinuousFunctionalCalculus R p] [UniqueContinuousFunctionalCalculus R A]
130
135
131
- lemma cfcHom_eq_restrict (f : C(S, R)) (h_isom : Isometry (algebraMap R S)) {a : A} (hpa : p a )
132
- (hqa : q a) (h : SpectrumRestricts a f) [CompactSpace (spectrum S a)] :
136
+ lemma cfcHom_eq_restrict (f : C(S, R)) (halg : UniformEmbedding (algebraMap R S))
137
+ {a : A} (hpa : p a) (hqa : q a) (h : SpectrumRestricts a f) [CompactSpace (spectrum S a)] :
133
138
cfcHom hpa = h.starAlgHom (cfcHom hqa) := by
134
139
apply cfcHom_eq_of_continuous_of_map_id
135
- · exact h.closedEmbedding_starAlgHom (cfcHom_closedEmbedding hqa) h_isom |>.continuous
140
+ · exact h.closedEmbedding_starAlgHom (cfcHom_closedEmbedding hqa) halg |>.continuous
136
141
· exact h.starAlgHom_id (cfcHom_id hqa)
137
142
138
- lemma cfc_eq_restrict (f : C(S, R)) (h_isom : Isometry (algebraMap R S)) {a : A} (hpa : p a)
143
+ lemma cfc_eq_restrict (f : C(S, R)) (halg : UniformEmbedding (algebraMap R S)) {a : A} (hpa : p a)
139
144
(hqa : q a) (h : SpectrumRestricts a f) [CompactSpace (spectrum S a)] (g : R → R) :
140
145
cfc g a = cfc (fun x ↦ algebraMap R S (g (f x))) a := by
141
146
by_cases hg : ContinuousOn g (spectrum R a)
142
- · rw [cfc_apply g a, cfcHom_eq_restrict f h_isom hpa hqa h, SpectrumRestricts.starAlgHom_apply,
147
+ · rw [cfc_apply g a, cfcHom_eq_restrict f halg hpa hqa h, SpectrumRestricts.starAlgHom_apply,
143
148
cfcHom_eq_cfc_extend 0 ]
144
149
apply cfc_congr fun x hx ↦ ?_
145
150
lift x to spectrum S a using hx
146
151
simp [Function.comp, Subtype.val_injective.extend_apply]
147
152
· have : ¬ ContinuousOn (fun x ↦ algebraMap R S (g (f x)) : S → S) (spectrum S a) := by
148
153
refine fun hg' ↦ hg ?_
149
- rw [h_isom .embedding.continuousOn_iff]
150
- simpa [h_isom .embedding.continuousOn_iff, Function.comp, h.left_inv _] using
151
- hg'.comp h_isom .continuous.continuousOn (fun _ : R ↦ spectrum.algebraMap_mem S)
154
+ rw [halg .embedding.continuousOn_iff]
155
+ simpa [halg .embedding.continuousOn_iff, Function.comp, h.left_inv _] using
156
+ hg'.comp halg.embedding .continuous.continuousOn (fun _ : R ↦ spectrum.algebraMap_mem S)
152
157
rw [cfc_apply_of_not_continuousOn a hg, cfc_apply_of_not_continuousOn a this]
153
158
154
159
end SpectrumRestricts
0 commit comments