CompletedGroupAlgebra/OpenFiniteQuotientTopology/OpenFiniteLimit/Algebra.lean

1import CompletedGroupAlgebra.OpenFiniteQuotientTopology.OpenFiniteLimit.System
3/-
4PUBLIC_PAGE_SNAPSHOT
5generated_at: 2026-05-27T09:47:29+09:00
6lean_source: lean4/CompletedGroupAlgebra/OpenFiniteQuotientTopology/OpenFiniteLimit/Algebra.lean
7translation_root: data/translation
8purpose: identifies the local data snapshot used to build pages/
9placement: after imports, never before imports
10-/
11/-!
12# Algebra 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]
34 intro K L hKL
41 add x y := ⟨fun K =>
44 intro K L hKL
45 calc
49 =
53 (show CompletedGroupAlgebraOpenFiniteQuotientStage R G L from y.1 L) := by
54 rw [map_add]
55 _ = (show CompletedGroupAlgebraOpenFiniteQuotientStage R G K from x.1 K) +
56 (show CompletedGroupAlgebraOpenFiniteQuotientStage R G K from y.1 K) := by
57 exact congrArg₂ HAdd.hAdd (x.2 K L hKL) (y.2 K L hKL)⟩
61 neg x := ⟨fun K => -(show CompletedGroupAlgebraOpenFiniteQuotientStage R G K from x.1 K), by
62 intro K L hKL
66 rw [map_neg]
67 exact congrArg Neg.neg (x.2 K L hKL)⟩
71 sub x y := ⟨fun K =>
74 intro K L hKL
80 rw [map_sub]
81 exact congrArg₂ HSub.hSub (x.2 K L hKL) (y.2 K L hKL)⟩
85 smul n x := ⟨fun K => n • (show CompletedGroupAlgebraOpenFiniteQuotientStage R G K from x.1 K), by
86 intro K L hKL
88 (n • (show CompletedGroupAlgebraOpenFiniteQuotientStage R G L from x.1 L)) =
89 n • (show CompletedGroupAlgebraOpenFiniteQuotientStage R G K from x.1 K)
90 rw [map_nsmul]
91 exact congrArg (n • ·) (x.2 K L hKL)⟩
95 smul n x := ⟨fun K => n • (show CompletedGroupAlgebraOpenFiniteQuotientStage R G K from x.1 K), by
96 intro K L hKL
98 (n • (show CompletedGroupAlgebraOpenFiniteQuotientStage R G L from x.1 L)) =
99 n • (show CompletedGroupAlgebraOpenFiniteQuotientStage R G K from x.1 K)
100 rw [map_zsmul]
101 exact congrArg (n • ·) (x.2 K L hKL)⟩
105 AddCommGroup ((completedGroupAlgebraOpenFiniteQuotientSystem R G).X K) := by
108 infer_instance
111 AddCommGroup
114 inferInstance
116/-- The coercion of zero in the open finite quotient limit is the zero family. -/
117@[simp]
122 funext K
123 rfl
125/-- The coercion of a sum in the open finite quotient limit is computed coordinatewise. -/
126@[simp]
132 x + y := by
133 funext K
134 rfl
136/-- The coercion of a negation in the open finite quotient limit is computed coordinatewise. -/
137@[simp]
143 -x := by
144 funext K
145 rfl
147/-- The coercion of a subtraction in the open finite quotient limit is computed coordinatewise. -/
148@[simp]
154 x - y := by
155 funext K
156 rfl
158/-- The coercion of a natural scalar multiple in the open finite quotient limit is coordinatewise. -/
159@[simp]
165 n • x := by
166 funext K
167 rfl
169/-- The coercion of an integer scalar multiple in the open finite quotient limit is coordinatewise. -/
170@[simp]
176 n • x := by
177 funext K
178 rfl
182 Function.Injective.addCommGroup
186 Subtype.val_injective
197 intro K L hKL
204 mul x y := ⟨fun K =>
207 intro K L hKL
208 calc
212 =
220 exact congrArg₂ HMul.hMul (x.2 K L hKL) (y.2 K L hKL)⟩
224 natCast n := ⟨fun K => (n : CompletedGroupAlgebraOpenFiniteQuotientStage R G K), by
225 intro K L hKL
232 intCast n := ⟨fun K => (n : CompletedGroupAlgebraOpenFiniteQuotientStage R G K), by
233 intro K L hKL
243 infer_instance
248 inferInstance
252 pow x n := ⟨fun K => (show CompletedGroupAlgebraOpenFiniteQuotientStage R G K from x.1 K) ^ n, by
253 intro K L hKL
255 ((show CompletedGroupAlgebraOpenFiniteQuotientStage R G L from x.1 L) ^ n) =
257 rw [map_pow]
258 exact congrArg (fun t => t ^ n) (x.2 K L hKL)⟩
260/-- The coercion of one in the open finite quotient limit is the one family. -/
261@[simp]
266 funext K
267 rfl
269/-- The coercion of a product in the open finite quotient limit is computed coordinatewise. -/
270@[simp]
276 x * y := by
277 funext K
278 rfl
280/-- Natural-number casts into the open finite quotient limit are computed coordinatewise. -/
281@[simp]
286 n := by
287 funext K
288 rfl
290/-- Integer casts into the open finite quotient limit are computed coordinatewise. -/
291@[simp]
296 n := by
297 funext K
298 rfl
300/-- Powers in the open finite quotient limit are computed coordinatewise. -/
301@[simp]
307 x ^ n := by
308 funext K
309 rfl
313 Function.Injective.ring
317 Subtype.val_injective
327 (by intro n; exact coe_natCast_completedGroupAlgebraOpenFiniteQuotientLimit (R := R) (G := G) n)
328 (by intro n; exact coe_intCast_completedGroupAlgebraOpenFiniteQuotientLimit (R := R) (G := G) n)
330/-- Projection from the open finite quotient limit sends zero to zero. -/
331@[simp]
337/-- Projection from the open finite quotient limit preserves addition. -/
338@[simp]
346/-- Projection from the open finite quotient limit preserves negation. -/
347@[simp]
354/-- Projection from the open finite quotient limit preserves subtraction. -/
355@[simp]
363/-- Projection from the open finite quotient limit sends one to one. -/
364@[simp]
370/-- Projection from the open finite quotient limit preserves multiplication. -/
371@[simp]
379/-- Projection from the two-parameter limit to one quotient, as a ring homomorphism. -/
381 (R : Type u) (G : Type v) [CommRing R] [TopologicalSpace R] [IsTopologicalRing R]
382 [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
392/-- The projection ring homomorphism has the same underlying function as the projection. -/
393@[simp]
395 [IsTopologicalRing R]
400 rfl
403end