@@ -6,7 +6,7 @@ import Mathlib.Topology.Order
6
6
import Mathlib.Algebra.Group.Action.Defs
7
7
8
8
/-
9
-
9
+ -- todo : A -> R, M -> A
10
10
# An "action topology" for monoid actions.
11
11
12
12
Let `A` denote a topological monoid, and say `A` acts on the type `M`.
@@ -29,6 +29,7 @@ may or may not have the following cool properties:
29
29
the product topology.
30
30
5) The `A`-module topology on a power `M^n`, that is, `n → M` with `n : Type`, is the
31
31
(now possibly infinite) product topology.
32
+ 5.5) sigma types
32
33
33
34
6) Now say `A` is commutative. Then the tensor product of two `A`-modules is an `A`-module,
34
35
and so we can ask if the canonical bilinear map from `M × N` (with the module or product topology?
@@ -43,7 +44,7 @@ functions from `M` (now considered only as an index set, so with no topology) to
43
44
-/
44
45
section basics
45
46
46
- abbrev ActionTopology (R A : Type *) [SMul R A] [TopologicalSpace R] :
47
+ abbrev actionTopology (R A : Type *) [SMul R A] [TopologicalSpace R] :
47
48
TopologicalSpace A :=
48
49
sInf {t | @ContinuousSMul R A _ _ t}
49
50
@@ -52,22 +53,136 @@ abbrev ActionTopology (R A : Type*) [SMul R A] [TopologicalSpace R] :
52
53
-- called A M as well. Here we completely avoid the M ambiguity.
53
54
class IsActionTopology (R A : Type *) [SMul R A]
54
55
[TopologicalSpace R] [τA : TopologicalSpace A] : Prop where
55
- isActionTopology : τA = ActionTopology R A
56
+ isActionTopology' : τA = actionTopology R A
56
57
57
- --variable (M : Type*) [Monoid M] (X : Type*) [TopologicalSpace M] [SMul M X]
58
+ lemma isActionTopology (R A : Type *) [SMul R A]
59
+ [TopologicalSpace R] [τA : TopologicalSpace A] [IsActionTopology R A] :
60
+ τA = actionTopology R A :=
61
+ IsActionTopology.isActionTopology' (R := R) (A := A)
58
62
59
63
variable (R A : Type *) [SMul R A] [TopologicalSpace R] in
60
- example : @ContinuousSMul R A _ _ (ActionTopology R A) :=
64
+ example : @ContinuousSMul R A _ _ (actionTopology R A) :=
61
65
continuousSMul_sInf <| by aesop
62
66
63
67
variable (R A : Type *) [SMul R A] [TopologicalSpace R]
64
68
[TopologicalSpace A] [IsActionTopology R A] in
65
69
example : ContinuousSMul R A := by
66
- rw [IsActionTopology. isActionTopology (R := R) (A := A) ]
70
+ rw [isActionTopology R A ]
67
71
exact continuousSMul_sInf <| by aesop
68
72
69
73
end basics
70
74
75
+ namespace ActionTopology
76
+ section scratch
77
+
78
+ example (L : Type *) [CompleteLattice L] (ι : Type *) (f : ι → L) (t : L) :
79
+ t = ⨆ i, f i ↔ (∀ i, t ≤ f i) ∧ (∀ j, (∀ i, j ≤ f i) → j ≤ t) := by
80
+ --rw [ iSup_eq ]
81
+ sorry
82
+
83
+ end scratch
84
+
85
+ section one
86
+
87
+ lemma id' (R : Type *) [Monoid R] [τ : TopologicalSpace R] [ContinuousMul R] :
88
+ IsActionTopology R R := by
89
+ constructor
90
+ unfold actionTopology
91
+ symm
92
+ rw [← isGLB_iff_sInf_eq]
93
+ constructor
94
+ · intro σ hσ
95
+ cases' hσ with hσ
96
+ rw [← continuous_id_iff_le]
97
+ have foo : (id : R → R) = (fun ab ↦ ab.1 * ab.2 : R × R → R) ∘ (fun r ↦ (r, 1 )) := by
98
+ funext
99
+ simp
100
+ rw [foo]
101
+ apply @Continuous.comp R (R × R) R τ (@instTopologicalSpaceProd R R τ σ)
102
+ · apply hσ
103
+ · refine @Continuous.prod_mk R R R ?_ ?_ ?_ ?_ ?_ ?_ ?_
104
+ · refine @continuous_id R ?_
105
+ · refine @continuous_const R R ?_ ?_ 1
106
+ · intro σ hσ
107
+ rw [mem_lowerBounds] at hσ
108
+ apply hσ
109
+ clear σ hσ
110
+ simp
111
+ constructor
112
+ rename_i foo
113
+ cases foo with
114
+ | mk continuous_mul => exact continuous_mul
115
+
116
+ end one
117
+ section prod
118
+
119
+ variable {R : Type } [TopologicalSpace R]
120
+
121
+ -- let `M` and `N` have an action of `R`
122
+ variable {M : Type *} [SMul R M] [aM : TopologicalSpace M] [IsActionTopology R M]
123
+ variable {N : Type *} [SMul R N] [aN : TopologicalSpace N] [IsActionTopology R N]
124
+
125
+ --example (L) [CompleteLattice L] (f : M → N) (g : N → L) : ⨆ m, g (f m) ≤ ⨆ n, g n := by
126
+ -- exact iSup_comp_le g f
127
+
128
+ --theorem map_smul_pointfree (f : M →[ R ] N) (r : R) : (fun m ↦ f (r • m)) = fun m ↦ r • f m :=
129
+ -- by ext; apply map_smul
130
+
131
+ lemma prod : IsActionTopology R (M × N) := by
132
+ constructor
133
+ unfold instTopologicalSpaceProd actionTopology
134
+ apply le_antisymm
135
+ · apply le_sInf
136
+ intro σMN hσ
137
+ sorry
138
+ ·
139
+ sorry
140
+
141
+ end prod
142
+ #exit
143
+
144
+ /-- Every `A`-linear map between two `A`-modules with the canonical topology is continuous. -/
145
+ lemma continuous_of_mulActionHom (φ : M →[R] N) : Continuous φ := by
146
+ -- Let's turn this question into an inequality question about coinduced topologies
147
+ -- Now let's use the fact that τM and τN are action topologies (hence also coinduced)
148
+ rw [isActionTopology R M, isActionTopology R N]
149
+ unfold actionTopology
150
+ -- rw [ continuous_iff_le_induced ]
151
+ -- sorry
152
+
153
+ -- coinduced attempt, got tangled, pre paper approach
154
+ rw [continuous_iff_coinduced_le]
155
+ rw [le_sInf_iff]
156
+ intro τN hτN
157
+ rw [coinduced_le_iff_le_induced]
158
+
159
+
160
+ rw [sInf_le_iff]
161
+ intro τM hτM
162
+ change ∀ _, _ at hτM
163
+ apply hτM
164
+ simp
165
+ rw [@DFunLike.coe_eq_coe_fn]
166
+ simp
167
+
168
+ -- -- original proof, now broken
169
+ -- rw [ coinduced_le_iff_le_induced ]
170
+ -- -- There's an already-proven lemma in mathlib that says that coinducing an `iSup` is the
171
+ -- -- same thing as taking the `iSup`s of the coinduced topologies
172
+ -- -- composite of the coinduced topologies is just topology coinduced by the composite
173
+ -- rw [ coinduced_iSup ]
174
+ -- simp_rw [ coinduced_compose ]
175
+ -- -- restate the current state of the question with better variables
176
+ -- change ⨆ m, TopologicalSpace.coinduced (fun r ↦ e (r • m)) τR ≤
177
+ -- ⨆ n, TopologicalSpace.coinduced (fun x ↦ x • n) τR
178
+ -- -- use the fact that `e (r • m) = r • (e m)`
179
+ -- simp_rw [ map_smul ]
180
+ -- -- and now the goal follows from the fact that the sup over a small set is ≤ the sup
181
+ -- -- over a big set
182
+ -- apply iSup_comp_le (_ : N → TopologicalSpace N)
183
+
184
+ #exit
185
+
71
186
section
72
187
-- Let R be a monoid, with a compatible topology.
73
188
variable (R : Type *) [Monoid R] [TopologicalSpace R] [ContinuousMul R]
0 commit comments