@@ -7,45 +7,38 @@ import Mathlib.Algebra.Module.Projective
7
7
import Mathlib.LinearAlgebra.TensorProduct.RightExactness
8
8
9
9
/-
10
- # An topology for monoid actions.
10
+ # The module topology
11
11
12
- If `R` is a topological ring and `A` is an `R`-module, then there are several ways in which
13
- `A` can inherit a topology from `R` via the action. We make one such definiion here,
14
- which we call the *module* topology, or the `R`-module topology if there is an ambiguity.
15
- This topology has very nice properties on the category of finite R-modules. For example,
16
- all `R`-linear maps between finite `A`-modules are continuous, and given any `R`-linear surjection
17
- `Rⁿ → A` for `n` finite, the topology on `A` is the pushforward of the product topology on `Rⁿ`.
18
- This has importance in the theory of algebraic groups over local fields such as the reals
19
- or the `p`-adics. Example: if `A` is a finite-dimensional central simple algebra over a
20
- topological ring `R`, then in the representation theory of algebraic groups we would like
21
- to consider certain continuous representations of `Aˣ`, so `A` needs a topology. In our
22
- approach we can do the following:
23
-
24
- -/
25
-
26
- -- section continuous_smul
12
+ If `R` is a topological ring and `M` is an `R`-module, the *module topology* on `M` is
13
+ the finest topology making all `R`-linear maps `Rⁿ → M` continuous. Here `n` runs through
14
+ the naturals and `Rⁿ` has the product topology. This topology has some nice properties.
15
+ For example if `D` is an `R`-algebra which is finite as an `R`-module, then `D` is
16
+ automatically a topological ring for the module topology.
27
17
28
- -- variable {R : Type} [τR : TopologicalSpace R]
29
- -- variable {A : Type} [SMul R A]
30
- -- variable {S : Type} [τS : TopologicalSpace S] {f : S → R} (hf : Continuous f)
31
- -- variable {B : Type} [SMul S B] (g : B →ₑ[ f ] A)
18
+ ## Details
32
19
33
- -- -- note: use convert not exact to ensure typeclass inference doesn't try to find topology on B
34
- -- lemma induced_continuous_smul [τA : TopologicalSpace A] [ContinuousSMul R A] :
35
- -- @ContinuousSMul S B _ _ (TopologicalSpace.induced g τA) := by
36
- -- convert Inducing.continuousSMul (inducing_induced g) hf (fun {c} {x} ↦ map_smulₛₗ g c x)
37
-
38
- -- #check Prod.continuousSMul -- exists and is an instance :-)
39
- -- --#check Induced.continuousSMul -- doesn't exist
20
+ If `R` is a topological ring and `A` is an `R`-module, then there are several ways in which
21
+ `A` can inherit a topology from `R` via the action (indeed, this is the 4th one which
22
+ the author has tried). We make one such definition here, which we call the *module* topology,
23
+ or the `R`-module topology if there is an ambiguity.
24
+
25
+ The module topology has some nice properties: for example all `R`-linear maps between modules
26
+ are automatically continuous for the module topology. On the category of finite `R`-modules
27
+ things are even better. Given any `R`-linear surjection `Rⁿ → A` for `n` a natural (or a
28
+ finite type), the topology on `A` is the pushforward (i.e. `TopologicalSpace.coinduced`)
29
+ of the product topology on `Rⁿ`. If furthermore `R` is commutative and `A` is an `R`-algebra
30
+ which is finite as an `R`-module, then `A` automatically becomes a topological ring for the
31
+ module topology (i.e., multiplication is continuous). This can be very convenient (for example
32
+ it can be used to topologise finite-dimensional central simple algebras over the reals
33
+ or $p$-adics).
40
34
41
- -- end continuous_smul
35
+ -/
42
36
43
37
section elsewhere
44
38
45
39
variable {A : Type *} [AddCommGroup A] [τA : TopologicalSpace A] [ContinuousAdd A]
46
40
variable {B : Type *} [AddCommGroup B] [τB : TopologicalSpace B]
47
41
48
-
49
42
lemma AddMonoidHom.sub_mem_ker_iff {A B : Type *} [AddCommGroup A]
50
43
[AddCommGroup B] (φ : A →+ B) {x y : A} :
51
44
x - y ∈ AddMonoidHom.ker φ ↔ φ x = φ y := by
@@ -420,8 +413,9 @@ lemma key : ((TensorProduct.map f g ∘ₗ
420
413
(isom'' R m n).symm.toLinearMap) fun mn ↦ a1 mn.1 * b1 mn.2 ) = f a1 ⊗ₜ[R] g b1 := by
421
414
sorry
422
415
423
- -- once we have mathlib#16122 we can replace `isom''` with `finiteTensorPiLid R R m n`
424
- -- and `key` with the following: (M ↦ A, N ↦ B)
416
+ -- once mathlib#16122 is merged we can bump and then replace `isom''` with
417
+ -- `finiteTensorPiLid R R m n` and `key` with the following: (M ↦ A, N ↦ B)
418
+ -- and this should complete the proof.
425
419
426
420
-- variable (m n : Type*) [Finite m] [DecidableEq m] (a1 : m → R)
427
421
-- (b1 : n → R) (f : (m → R) →ₗ[ R ] M) (g : (n → R) →ₗ[ R ] N) in
0 commit comments