CompletedGroupAlgebra/OpenFiniteQuotientTopology/OpenFiniteLimit/Topology.lean

1import CompletedGroupAlgebra.OpenFiniteQuotientTopology.OpenFiniteLimit.Algebra
3/-
4PUBLIC_PAGE_SNAPSHOT
5generated_at: 2026-05-27T09:47:29+09:00
6lean_source: lean4/CompletedGroupAlgebra/OpenFiniteQuotientTopology/OpenFiniteLimit/Topology.lean
7translation_root: data/translation
8purpose: identifies the local data snapshot used to build pages/
9placement: after imports, never before imports
10-/
11/-!
12# Topology on the open finite quotient limit
13-/
15open scoped Topology
19noncomputable section
21open ProCGroups
22open ProCGroups.ProC
23open ProCGroups.InverseSystems
24open ProCGroups.Completion
26universe u v
28variable (R : Type u) [CommRing R] [TopologicalSpace R]
29variable (G : Type v) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
31/-- Each two-parameter finite quotient stage is a topological ring for its discrete topology. -/
33 (R : Type u) (G : Type v) [CommRing R] [TopologicalSpace R] [Group G]
34 [TopologicalSpace G] [IsTopologicalGroup G]
36 letI : TopologicalSpace (CompletedGroupAlgebraOpenFiniteQuotientStage R G K) :=
38 IsTopologicalRing (CompletedGroupAlgebraOpenFiniteQuotientStage R G K) := by
39 letI : TopologicalSpace (CompletedGroupAlgebraOpenFiniteQuotientStage R G K) :=
41 haveI : DiscreteTopology (CompletedGroupAlgebraOpenFiniteQuotientStage R G K) :=
43 infer_instance
45/-- Under profiniteness of `R`, each two-parameter quotient stage is a finite discrete profinite
46ring. -/
48 (R : Type u) (G : Type v) [CommRing R] [TopologicalSpace R] [Group G]
49 [TopologicalSpace G] [IsTopologicalGroup G] (hR : IsProfiniteRing R)
51 letI : TopologicalSpace (CompletedGroupAlgebraOpenFiniteQuotientStage R G K) :=
54 classical
55 letI : TopologicalSpace (CompletedGroupAlgebraOpenFiniteQuotientStage R G K) :=
57 haveI : DiscreteTopology (CompletedGroupAlgebraOpenFiniteQuotientStage R G K) :=
59 let I : Ideal R := (OrderDual.ofDual K.1).1
60 have hIopen : IsOpen (I : Set R) := (OrderDual.ofDual K.1).2
61 rcases finite_quotient_of_openIdeal R hR I hIopen with ⟨hIfin⟩
62 letI : Fintype (R ⧸ I) := hIfin
63 letI : Fintype (CompletedGroupAlgebraQuotient G K.2) :=
64 Fintype.ofFinite (CompletedGroupAlgebraQuotient G K.2)
66 Fintype.ofEquiv (CompletedGroupAlgebraQuotient G K.2 → R ⧸ I)
67 Finsupp.equivFunOnFinite.symm
68 exact ⟨inferInstance, inferInstance, inferInstance, inferInstance⟩
70/-- Each open finite quotient stage is finite when the coefficient ring is profinite. -/
72 (R : Type u) (G : Type v) [CommRing R] [TopologicalSpace R] [Group G]
73 [TopologicalSpace G] [IsTopologicalGroup G] (hR : IsProfiniteRing R)
75 Nonempty (Fintype (CompletedGroupAlgebraOpenFiniteQuotientStage R G K)) := by
76 classical
77 let I : Ideal R := (OrderDual.ofDual K.1).1
78 have hIopen : IsOpen (I : Set R) := (OrderDual.ofDual K.1).2
79 rcases finite_quotient_of_openIdeal R hR I hIopen with ⟨hIfin⟩
80 letI : Fintype (R ⧸ I) := hIfin
81 letI : Fintype (CompletedGroupAlgebraQuotient G K.2) :=
82 Fintype.ofFinite (CompletedGroupAlgebraQuotient G K.2)
83 exact ⟨Fintype.ofEquiv
84 (CompletedGroupAlgebraQuotient G K.2 → R ⧸ I)
85 Finsupp.equivFunOnFinite.symm⟩
89 continuous_add := by
93 fun K => (completedGroupAlgebraOpenFiniteQuotientSystem R G).topologicalSpace K
94 have hval : Continuous fun p : A × A =>
95 ((p.1 + p.2 : A) :
98 change Continuous fun p : A × A =>
102 apply continuous_pi
103 intro K
104 letI : IsTopologicalRing ((completedGroupAlgebraOpenFiniteQuotientSystem R G).X K) :=
106 exact (((completedGroupAlgebraOpenFiniteQuotientSystem R G).continuous_projection K).comp
107 continuous_fst).add
108 (((completedGroupAlgebraOpenFiniteQuotientSystem R G).continuous_projection K).comp
109 continuous_snd)
110 exact Continuous.subtype_mk hval fun p => (p.1 + p.2).2
114 continuous_neg := by
118 fun K => (completedGroupAlgebraOpenFiniteQuotientSystem R G).topologicalSpace K
119 have hval : Continuous fun x : A =>
120 ((-x : A) :
123 change Continuous fun x : A =>
126 apply continuous_pi
127 intro K
128 letI : IsTopologicalRing ((completedGroupAlgebraOpenFiniteQuotientSystem R G).X K) :=
130 exact ((completedGroupAlgebraOpenFiniteQuotientSystem R G).continuous_projection K).neg
131 exact Continuous.subtype_mk hval fun x => (-x).2
135 continuous_mul := by
139 fun K => (completedGroupAlgebraOpenFiniteQuotientSystem R G).topologicalSpace K
140 have hval : Continuous fun p : A × A =>
141 ((p.1 * p.2 : A) :
144 change Continuous fun p : A × A =>
148 apply continuous_pi
149 intro K
150 letI : IsTopologicalRing ((completedGroupAlgebraOpenFiniteQuotientSystem R G).X K) :=
152 exact (((completedGroupAlgebraOpenFiniteQuotientSystem R G).continuous_projection K).comp
153 continuous_fst).mul
154 (((completedGroupAlgebraOpenFiniteQuotientSystem R G).continuous_projection K).comp
155 continuous_snd)
156 exact Continuous.subtype_mk hval fun p => (p.1 * p.2).2
166 letI : IsTopologicalSemiring (CompletedGroupAlgebraOpenFiniteQuotientLimit R G) :=
167 IsTopologicalSemiring.mk
168 exact IsTopologicalRing.mk
170/-- The open finite quotient limit is compact when the coefficient ring is profinite. -/
172 (hR : IsProfiniteRing R) :
175 CompactSpace ((completedGroupAlgebraOpenFiniteQuotientSystem R G).X K) := fun K =>
178 T2Space ((completedGroupAlgebraOpenFiniteQuotientSystem R G).X K) := fun K =>
180 infer_instance
182/-- The open finite quotient limit is Hausdorff when the coefficient ring is profinite. -/
184 (hR : IsProfiniteRing R) :
187 T2Space ((completedGroupAlgebraOpenFiniteQuotientSystem R G).X K) := fun K =>
191/-- The open finite quotient limit is totally disconnected when the coefficient ring is profinite. -/
193 (hR : IsProfiniteRing R) :
194 TotallyDisconnectedSpace (CompletedGroupAlgebraOpenFiniteQuotientLimit R G) := by
196 TotallyDisconnectedSpace ((completedGroupAlgebraOpenFiniteQuotientSystem R G).X K) := fun K =>
200/-- The two-parameter kernel-neighborhood limit is a profinite ring. -/
202 (hR : IsProfiniteRing R) :
208 letI : TotallyDisconnectedSpace (CompletedGroupAlgebraOpenFiniteQuotientLimit R G) :=
210 exact ⟨inferInstance, inferInstance, inferInstance, inferInstance⟩
212end