Skip to content

Commit cafcdcb

Browse files
committed
feat: {NonUnital}{Star}Subalgebra.map_topologicalClosure (#29535)
This adds the following 5 results for each of variant of `{NonUnital}{Star}Subalgebra` ```lean lemma map_topologicalClosure_le (hφ : Continuous φ) : map φ s.topologicalClosure ≤ (map φ s).topologicalClosure := image_closure_subset_closure_image hφ lemma topologicalClosure_map_le (hφ : IsClosedMap φ) : (map φ s).topologicalClosure ≤ map φ s.topologicalClosure := hφ.closure_image_subset _ lemma topologicalClosure_map (hφ : IsClosedMap φ) (hφ' : Continuous φ) : (map φ s).topologicalClosure = map φ s.topologicalClosure := SetLike.coe_injective <| hφ.closure_image_eq_of_continuous hφ' _ lemma topologicalClosure_adjoin_le_centralizer_centralizer (s : Set A) : (adjoin R s).topologicalClosure ≤ centralizer R (centralizer R s) := topologicalClosure_minimal (adjoin_le_centralizer_centralizer R s) (Set.isClosed_centralizer _) lemma elemental.le_centralizer_centralizer (x : A) : elemental R x ≤ centralizer R (centralizer R {x}) := topologicalClosure_adjoin_le_centralizer_centralizer R {x} ``` In the case of `Subalgebra`, we repurpose the existing `Subalgebra.topologicalClosure_map`, as this was the wrong name for the lemma anyway. Moreover, for those results we use the bundled `ContinuousAlgHom` for continuity. There's also some minor clean up of the explicitness of some variables in `topologicalClosure_minimal`.
1 parent 6744585 commit cafcdcb

File tree

6 files changed

+107
-11
lines changed

6 files changed

+107
-11
lines changed

Mathlib/Topology/Algebra/Algebra.lean

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ notation:25 A " →A[" R "] " B => ContinuousAlgHom R A B
107107

108108
namespace ContinuousAlgHom
109109

110+
open Subalgebra
111+
110112
section Semiring
111113

112114
variable {R} {A}
@@ -232,11 +234,21 @@ def _root_.Subalgebra.topologicalClosure (s : Subalgebra R A) : Subalgebra R A w
232234

233235
/-- Under a continuous algebra map, the image of the `TopologicalClosure` of a subalgebra is
234236
contained in the `TopologicalClosure` of its image. -/
235-
theorem _root_.Subalgebra.topologicalClosure_map
237+
theorem _root_.Subalgebra.map_topologicalClosure_le
236238
[IsTopologicalSemiring B] (f : A →A[R] B) (s : Subalgebra R A) :
237-
s.topologicalClosure.map f ≤ (s.map f.toAlgHom).topologicalClosure :=
239+
map f s.topologicalClosure ≤ (map f.toAlgHom s).topologicalClosure :=
238240
image_closure_subset_closure_image f.continuous
239241

242+
lemma _root_.Subalgebra.topologicalClosure_map_le [IsTopologicalSemiring B]
243+
(f : A →ₐ[R] B) (hf : IsClosedMap f) (s : Subalgebra R A) :
244+
(map f s).topologicalClosure ≤ map f s.topologicalClosure :=
245+
hf.closure_image_subset _
246+
247+
lemma _root_.Subalgebra.topologicalClosure_map [IsTopologicalSemiring B]
248+
(f : A →A[R] B) (hf : IsClosedMap f) (s : Subalgebra R A) :
249+
(map f.toAlgHom s).topologicalClosure = map f.toAlgHom s.topologicalClosure :=
250+
SetLike.coe_injective <| hf.closure_image_eq_of_continuous f.continuous _
251+
240252
@[simp]
241253
theorem _root_.Subalgebra.topologicalClosure_coe (s : Subalgebra R A) :
242254
(s.topologicalClosure : Set A) = closure ↑s := rfl
@@ -553,10 +565,16 @@ theorem Subalgebra.le_topologicalClosure (s : Subalgebra R A) : s ≤ s.topologi
553565
theorem Subalgebra.isClosed_topologicalClosure (s : Subalgebra R A) :
554566
IsClosed (s.topologicalClosure : Set A) := by convert @isClosed_closure A _ s
555567

556-
theorem Subalgebra.topologicalClosure_minimal (s : Subalgebra R A) {t : Subalgebra R A} (h : s ≤ t)
568+
theorem Subalgebra.topologicalClosure_minimal {s t : Subalgebra R A} (h : s ≤ t)
557569
(ht : IsClosed (t : Set A)) : s.topologicalClosure ≤ t :=
558570
closure_minimal h ht
559571

572+
variable (R) in
573+
open Algebra in
574+
lemma Subalgebra.topologicalClosure_adjoin_le_centralizer_centralizer [T2Space A] (s : Set A) :
575+
(adjoin R s).topologicalClosure ≤ centralizer R (centralizer R s) :=
576+
topologicalClosure_minimal (adjoin_le_centralizer_centralizer R s) (Set.isClosed_centralizer _)
577+
560578
/-- If a subalgebra of a topological algebra is commutative, then so is its topological closure.
561579
562580
See note [reducible non-instances]. -/
@@ -595,7 +613,7 @@ theorem self_mem (x : A) : x ∈ elemental R x :=
595613
variable {R} in
596614
theorem le_of_mem {x : A} {s : Subalgebra R A} (hs : IsClosed (s : Set A)) (hx : x ∈ s) :
597615
elemental R x ≤ s :=
598-
topologicalClosure_minimal _ (adjoin_le <| by simpa using hx) hs
616+
topologicalClosure_minimal (adjoin_le <| by simpa using hx) hs
599617

600618
variable {R} in
601619
theorem le_iff_mem {x : A} {s : Subalgebra R A} (hs : IsClosed (s : Set A)) :
@@ -624,6 +642,10 @@ theorem isClosedEmbedding_coe (x : A) : IsClosedEmbedding ((↑) : elemental R x
624642
injective := Subtype.coe_injective
625643
isClosed_range := by simpa using isClosed R x
626644

645+
lemma le_centralizer_centralizer [T2Space A] (x : A) :
646+
elemental R x ≤ centralizer R (centralizer R {x}) :=
647+
topologicalClosure_adjoin_le_centralizer_centralizer ..
648+
627649
end Algebra.elemental
628650

629651
end TopologicalAlgebra

Mathlib/Topology/Algebra/Group/Basic.lean

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@ universe u v w x
4040

4141
variable {G : Type w} {H : Type x} {α : Type u} {β : Type v}
4242

43+
/-- In a Hausdorff magma with continuous multiplication, the centralizer of any set is closed. -/
44+
lemma Set.isClosed_centralizer {M : Type*} (s : Set M) [Mul M] [TopologicalSpace M]
45+
[ContinuousMul M] [T2Space M] : IsClosed (centralizer s) := by
46+
rw [centralizer, setOf_forall]
47+
refine isClosed_sInter ?_
48+
rintro - ⟨m, ht, rfl⟩
49+
refine isClosed_imp (by simp) <| isClosed_eq ?_ ?_
50+
all_goals fun_prop
51+
4352
section ContinuousMulGroup
4453

4554
/-!

Mathlib/Topology/Algebra/NonUnitalAlgebra.lean

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ namespace NonUnitalSubalgebra
2424

2525
section Semiring
2626

27-
variable {R A : Type*} [CommSemiring R] [TopologicalSpace A]
27+
variable {R A B : Type*} [CommSemiring R] [TopologicalSpace A]
2828
variable [NonUnitalSemiring A] [Module R A] [IsTopologicalSemiring A]
2929
variable [ContinuousConstSMul R A]
3030

@@ -43,7 +43,7 @@ theorem le_topologicalClosure (s : NonUnitalSubalgebra R A) : s ≤ s.topologica
4343
theorem isClosed_topologicalClosure (s : NonUnitalSubalgebra R A) :
4444
IsClosed (s.topologicalClosure : Set A) := isClosed_closure
4545

46-
theorem topologicalClosure_minimal (s : NonUnitalSubalgebra R A) {t : NonUnitalSubalgebra R A}
46+
theorem topologicalClosure_minimal {s t : NonUnitalSubalgebra R A}
4747
(h : s ≤ t) (ht : IsClosed (t : Set A)) : s.topologicalClosure ≤ t :=
4848
closure_minimal h ht
4949

@@ -55,6 +55,28 @@ abbrev nonUnitalCommSemiringTopologicalClosure [T2Space A] (s : NonUnitalSubalge
5555
(hs : ∀ x y : s, x * y = y * x) : NonUnitalCommSemiring s.topologicalClosure :=
5656
s.toNonUnitalSubsemiring.nonUnitalCommSemiringTopologicalClosure hs
5757

58+
variable [TopologicalSpace B] [NonUnitalSemiring B] [Module R B] [IsTopologicalSemiring B]
59+
[ContinuousConstSMul R B] (s : NonUnitalSubalgebra R A) {φ : A →ₙₐ[R] B}
60+
61+
lemma map_topologicalClosure_le (hφ : Continuous φ) :
62+
map φ s.topologicalClosure ≤ (map φ s).topologicalClosure :=
63+
image_closure_subset_closure_image hφ
64+
65+
lemma topologicalClosure_map_le (hφ : IsClosedMap φ) :
66+
(map φ s).topologicalClosure ≤ map φ s.topologicalClosure :=
67+
hφ.closure_image_subset _
68+
69+
lemma topologicalClosure_map (hφ : IsClosedMap φ) (hφ' : Continuous φ) :
70+
(map φ s).topologicalClosure = map φ s.topologicalClosure :=
71+
SetLike.coe_injective <| hφ.closure_image_eq_of_continuous hφ' _
72+
73+
variable (R) in
74+
open NonUnitalAlgebra in
75+
lemma topologicalClosure_adjoin_le_centralizer_centralizer
76+
[IsScalarTower R A A] [SMulCommClass R A A] [T2Space A] (s : Set A) :
77+
(adjoin R s).topologicalClosure ≤ centralizer R (centralizer R s) :=
78+
topologicalClosure_minimal (adjoin_le_centralizer_centralizer R s) (Set.isClosed_centralizer _)
79+
5880
end Semiring
5981

6082
section Ring
@@ -99,7 +121,7 @@ theorem self_mem (x : A) : x ∈ elemental R x :=
99121
variable {R} in
100122
theorem le_of_mem {x : A} {s : NonUnitalSubalgebra R A} (hs : IsClosed (s : Set A)) (hx : x ∈ s) :
101123
elemental R x ≤ s :=
102-
topologicalClosure_minimal _ (adjoin_le <| by simpa using hx) hs
124+
topologicalClosure_minimal (adjoin_le <| by simpa using hx) hs
103125

104126
variable {R} in
105127
theorem le_iff_mem {x : A} {s : NonUnitalSubalgebra R A} (hs : IsClosed (s : Set A)) :
@@ -135,6 +157,10 @@ theorem isClosedEmbedding_coe (x : A) : Topology.IsClosedEmbedding ((↑) : elem
135157
injective := Subtype.coe_injective
136158
isClosed_range := by simpa using isClosed R x
137159

160+
lemma le_centralizer_centralizer [T2Space A] (x : A) :
161+
elemental R x ≤ centralizer R (centralizer R {x}) :=
162+
topologicalClosure_adjoin_le_centralizer_centralizer R {x}
163+
138164
end elemental
139165

140166
end NonUnitalAlgebra

Mathlib/Topology/Algebra/NonUnitalStarAlgebra.lean

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ namespace NonUnitalStarSubalgebra
2626

2727
section Semiring
2828

29-
variable {R A : Type*} [CommSemiring R] [TopologicalSpace A] [Star A]
29+
variable {R A B : Type*} [CommSemiring R] [TopologicalSpace A] [Star A]
3030
variable [NonUnitalSemiring A] [Module R A] [IsTopologicalSemiring A] [ContinuousStar A]
3131
variable [ContinuousConstSMul R A]
3232

@@ -59,6 +59,31 @@ abbrev nonUnitalCommSemiringTopologicalClosure [T2Space A] (s : NonUnitalStarSub
5959
(hs : ∀ x y : s, x * y = y * x) : NonUnitalCommSemiring s.topologicalClosure :=
6060
s.toNonUnitalSubalgebra.nonUnitalCommSemiringTopologicalClosure hs
6161

62+
variable [TopologicalSpace B] [Star B] [NonUnitalSemiring B] [Module R B]
63+
[IsTopologicalSemiring B] [ContinuousConstSMul R B] [ContinuousStar B]
64+
(s : NonUnitalStarSubalgebra R A) {φ : A →⋆ₙₐ[R] B}
65+
66+
lemma map_topologicalClosure_le (hφ : Continuous φ) :
67+
map φ s.topologicalClosure ≤ (map φ s).topologicalClosure :=
68+
image_closure_subset_closure_image hφ
69+
70+
lemma topologicalClosure_map_le (hφ : IsClosedMap φ) :
71+
(map φ s).topologicalClosure ≤ map φ s.topologicalClosure :=
72+
hφ.closure_image_subset _
73+
74+
lemma topologicalClosure_map (hφ : IsClosedMap φ) (hφ' : Continuous φ) :
75+
(map φ s).topologicalClosure = map φ s.topologicalClosure :=
76+
SetLike.coe_injective <| hφ.closure_image_eq_of_continuous hφ' _
77+
78+
open NonUnitalStarAlgebra in
79+
-- we have to shadow the variables because some things currently require `StarRing`
80+
lemma topologicalClosure_adjoin_le_centralizer_centralizer (R : Type*) {A : Type*}
81+
[CommSemiring R] [StarRing R] [TopologicalSpace A] [NonUnitalSemiring A] [StarRing A]
82+
[Module R A] [IsTopologicalSemiring A] [ContinuousStar A] [ContinuousConstSMul R A]
83+
[IsScalarTower R A A] [SMulCommClass R A A] [StarModule R A] [T2Space A] (s : Set A) :
84+
(adjoin R s).topologicalClosure ≤ centralizer R (centralizer R s) :=
85+
topologicalClosure_minimal _ (adjoin_le_centralizer_centralizer R s) (Set.isClosed_centralizer _)
86+
6287
end Semiring
6388

6489
section Ring
@@ -146,6 +171,10 @@ theorem isClosedEmbedding_coe (x : A) : Topology.IsClosedEmbedding ((↑) : elem
146171
injective := Subtype.coe_injective
147172
isClosed_range := by simpa using isClosed R x
148173

174+
lemma le_centralizer_centralizer [T2Space A] (x : A) :
175+
elemental R x ≤ centralizer R (centralizer R {x}) :=
176+
topologicalClosure_adjoin_le_centralizer_centralizer ..
177+
149178
end elemental
150179

151180
end NonUnitalStarAlgebra

Mathlib/Topology/Algebra/StarSubalgebra.lean

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,15 @@ theorem map_topologicalClosure_le [StarModule R B] [IsTopologicalSemiring B] [Co
101101
image_closure_subset_closure_image hφ
102102

103103
theorem topologicalClosure_map [StarModule R B] [IsTopologicalSemiring B] [ContinuousStar B]
104-
(s : StarSubalgebra R A) (φ : A →⋆ₐ[R] B) (hφ : IsClosedEmbedding φ) :
104+
(s : StarSubalgebra R A) (φ : A →⋆ₐ[R] B) (hφ : IsClosedMap φ) (hφ' : Continuous φ) :
105105
(map φ s).topologicalClosure = map φ s.topologicalClosure :=
106-
SetLike.coe_injective <| hφ.closure_image_eq _
106+
SetLike.coe_injective <| hφ.closure_image_eq_of_continuous hφ' _
107+
108+
variable (R) in
109+
open StarAlgebra in
110+
lemma topologicalClosure_adjoin_le_centralizer_centralizer [T2Space A] (s : Set A) :
111+
(adjoin R s).topologicalClosure ≤ centralizer R (centralizer R s) :=
112+
topologicalClosure_minimal (adjoin_le_centralizer_centralizer R s) (Set.isClosed_centralizer _)
107113

108114
theorem _root_.Subalgebra.topologicalClosure_star_comm (s : Subalgebra R A) :
109115
(star s).topologicalClosure = star s.topologicalClosure := by
@@ -213,6 +219,10 @@ theorem isClosedEmbedding_coe (x : A) : IsClosedEmbedding ((↑) : elemental R x
213219
injective := Subtype.coe_injective
214220
isClosed_range := by simpa using isClosed R x
215221

222+
lemma le_centralizer_centralizer [T2Space A] (x : A) :
223+
elemental R x ≤ centralizer R (centralizer R {x}) :=
224+
topologicalClosure_adjoin_le_centralizer_centralizer ..
225+
216226
@[elab_as_elim]
217227
theorem induction_on {x y : A}
218228
(hy : y ∈ elemental R x) {P : (u : A) → u ∈ elemental R x → Prop}

Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ theorem ContinuousMap.algHom_ext_map_X {A : Type*} [Semiring A]
497497
suffices (⊤ : Subalgebra ℝ C(s, ℝ)) ≤ AlgHom.equalizer φ ψ from
498498
AlgHom.ext fun x => this (by trivial)
499499
rw [← polynomialFunctions.topologicalClosure s]
500-
exact Subalgebra.topologicalClosure_minimal (polynomialFunctions s)
500+
exact Subalgebra.topologicalClosure_minimal
501501
(polynomialFunctions.le_equalizer s φ ψ h) (isClosed_eq hφ hψ)
502502

503503
/-- Continuous star algebra homomorphisms from `C(s, 𝕜)` into a star `𝕜`-algebra `A` which agree

0 commit comments

Comments
 (0)