1
- import Mathlib.RingTheory.TensorProduct.Basic
2
- import Mathlib.Topology.Algebra.Module.Basic
3
- import Mathlib.Tactic
4
- import Mathlib.Topology.Order
5
- import Mathlib.Algebra.Group.Action.Defs
6
1
import FLT.ForMathlib.MiscLemmas
7
- import Mathlib -- just for development
2
+ import Mathlib.Topology.Algebra.Ring.Basic
3
+ import Mathlib.LinearAlgebra.FreeModule.Finite.Basic
8
4
9
5
/-!
10
6
# An "action topology" for modules over a topological ring
@@ -20,20 +16,23 @@ This topology was suggested by Will Sawin [here](https://mathoverflow.net/a/4777
20
16
I (buzzard) don't know of any reference for this other than Sawin's mathoverflow answer,
21
17
so I expand some of the details here.
22
18
23
- First note that there is a finest topology with this property! Indeed, topologies on a fixed
19
+ First note that there *is* a finest topology with this property! Indeed, topologies on a fixed
24
20
type form a complete lattice (infinite infs and sups exist). So if `τ` is the Inf of all
25
21
the topologies on `A` which make `+` and `•` continuous, then the claim is that `+` and `•`
26
- are still continuous for `τ`. To show `+ : A × A → A` is continuous we need to show that the
27
- pushforward of the product topology `τ × τ` along `+` is `≤ τ`, and because `τ` is an Inf it
28
- suffices to show that it's `≤ σ` for any `σ` on `A` which makes `+` and `•` continuous.
22
+ are still continuous for `τ` (note that topologies are ordered so that finer topologies
23
+ are smaller). To show `+ : A × A → A` is continuous we equivalently need to show
24
+ that the pushforward of the product topology `τ × τ` along `+` is `≤ τ`, and because `τ` is
25
+ the greatest lower bound of the topologies making `•` and `+` continuous,
26
+ it suffices to show that it's `≤ σ` for any topology `σ` on `A` which makes `+` and `•` continuous.
29
27
However pushforward and products are monotone, so `τ × τ ≤ σ × σ`, and the pushforward of
30
28
`σ × σ` is `≤ σ` because that's precisely the statement that `+` is continuous for `σ`.
31
29
The proof for `•` is similar.
32
30
33
- A *topological module* for a topological ring `R` is an `R`-module `A` such that `+` and `•`
34
- are continuous. A crucial observation is that if `M` is a topological module, if `A` is a module,
35
- and if `φ : A → M` is linear, then the pullback of `M`'s topology to `A` is a topology making `A`
36
- into a topological module. Let's for example check that `•` is continuous. If `U ⊆ A` is open
31
+ A *topological module* for a topological ring `R` is an `R`-module `A` with a topology
32
+ making `+` and `•` continuous. A crucial observation is that if `M` is a topological `R`-module,
33
+ if `A` is an `R`-module with no topology, and if `φ : A → M` is linear, then the pullback of
34
+ `M`'s topology to `A` is a topology making `A` into a topological module. Let's for example
35
+ check that `•` is continuous. If `U ⊆ A` is open
37
36
then by definition of the pullback topology, `U = φ⁻¹(V)` for some open `V ⊆ M`, and
38
37
now the pullback of `U` under `•` is just the pullback along the continuous map
39
38
`id × φ : R × A → R × M` of the preimage of `V` under the continuous map `• : R × M → M`,
@@ -44,25 +43,35 @@ the action topology. Indeed the argument above shows that if `A → M` is linear
44
43
topology on `A` is `≤` the pullback of the action topology on `M` (because it's the inf of a set
45
44
containing this topology) which is the definition of continuity.
46
45
47
- We deduce that the action topology is a functor from the category of `R`-modules (`R` a topological
48
- ring) to the category of topological `R`-modules, and it is perhaps unsurprising that this is
49
- an adjoint to the forgetful functor. Indeed, if `A` is an `R`-module and `M` is
50
- a topological `R`-module, then the linear maps `A → M` are precisely the continuous linear maps
51
- from `A` with its action topology, to `M`, so the action topology is a left adjoint to the
52
- forgetful functor.
46
+ We also deduce that the action topology is a functor from the category of `R`-modules
47
+ (`R` a topological ring) to the category of topological `R`-modules, and it is perhaps
48
+ unsurprising that this is an adjoint to the forgetful functor. Indeed, if `A` is an `R`-module
49
+ and `M` is a topological `R`-module, then the linear maps `A → M` are precisely the continuous
50
+ linear maps from `A` with its action topology, to `M`, so the action topology is a left adjoint
51
+ to the forgetful functor.
53
52
54
53
This file develops the theory of the action topology. We prove that the action topology on
55
54
`R` as a module over itself is `R`'s original topology, that the action topology on a product
56
55
of modules is the product of the action topologies, and that the action topology on a quotient
57
56
module is the quotient topology.
58
57
59
- If the module is
58
+ We also show the slightly more subtle result that if `M`, `N` and `P` are `R`-modules
59
+ equipped with the action topology and if furthermore `M` is finite as an `R`-module,
60
+ then any bilinear map `M × N → P` is continuous.
60
61
61
62
## TODO
62
63
63
- Drop freeness from continuity of bilinear map claim; presumably only finiteness is needed,
64
- becuse of Sawin's observation that the quotient topology for a surjection of R-mods
65
- is the action topology.
64
+ 1) add the statement that the action topology is a functor from the category of `R`-modules
65
+ to the category of topological `R`-modules, and prove it's an adjoint
66
+
67
+ 2) PRs to mathlib:
68
+
69
+ 2a) weaken ring to semiring in some freeness statements in mathlib and then weaken
70
+ the corresponding statements in this file
71
+
72
+ 2b) PR `induced_sInf`, `induced_continuous_smul`, `induced_continuous_add`,
73
+ `isOpenMap_of_coinduced`, `LinearEquiv.sumPiEquivProdPi` and whatever else I use here.
74
+
66
75
-/
67
76
68
77
section basics
@@ -374,7 +383,9 @@ section semiring_bilinear
374
383
375
384
-- I need rings not semirings here, because ` ChooseBasisIndex.fintype` incorrectly(?) needs
376
385
-- a ring instead of a semiring. This should be fixed.
377
- variable {R : Type *} [τR : TopologicalSpace R] [CommRing R] [TopologicalRing R]
386
+ -- I also need commutativity because we don't have bilinear maps for non-commutative rings.
387
+ -- **TODO** ask on the Zulip whether this is an issue.
388
+ variable {R : Type *} [τR : TopologicalSpace R] [CommRing R] [TopologicalSemiring R]
378
389
379
390
-- similarly these don't need to be groups
380
391
variable {A : Type *} [AddCommGroup A] [Module R A] [aA : TopologicalSpace A] [IsActionTopology R A]
@@ -414,6 +425,7 @@ lemma Module.continuous_bilinear_of_pi_finite (ι : Type*) [Finite ι]
414
425
lemma Module.continuous_bilinear_of_finite_free [Module.Finite R A] [Module.Free R A]
415
426
(bil : A →ₗ[R] B →ₗ[R] C) : Continuous (fun ab ↦ bil ab.1 ab.2 : (A × B → C)) := by
416
427
let ι := Module.Free.ChooseBasisIndex R A
428
+ let hι : Fintype ι := Module.Free.ChooseBasisIndex.fintype R A
417
429
let b : Basis ι R A := Module.Free.chooseBasis R A
418
430
let elinear : A ≃ₗ[R] (ι → R) := b.equivFun
419
431
let bil' : (ι → R) →ₗ[R] B →ₗ[R] C := bil.comp elinear.symm.toLinearMap
0 commit comments