Skip to content

Commit 6ea2ef3

Browse files
committed
Merge branch 'main' of github.com:ImperialCollegeLondon/FLT
2 parents 61ba0bc + 7310cb2 commit 6ea2ef3

File tree

4 files changed

+387
-61
lines changed

4 files changed

+387
-61
lines changed

.github/workflows/push.yml

-5
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,6 @@ jobs:
100100
working-directory: docs
101101
run: JEKYLL_ENV=production bundle exec jekyll build
102102

103-
- name: Upload docs & blueprint artifact
104-
uses: actions/upload-pages-artifact@v3
105-
with:
106-
path: docs/
107-
108103
- name: Upload docs & blueprint artifact
109104
uses: actions/upload-pages-artifact@v3
110105
with:

FLT/HIMExperiments/ContinuousSMul_topology.lean

+44-55
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@ lemma induced_continuous_smul [τA : TopologicalSpace A] [ContinuousSMul R A] :
9292
@ContinuousSMul S B _ _ (TopologicalSpace.induced g τA) := by
9393
convert Inducing.continuousSMul (inducing_induced g) hf (fun {c} {x} ↦ map_smulₛₗ g c x)
9494

95+
#check Prod.continuousSMul -- exists and is an instance :-)
96+
--#check Induced.continuousSMul -- doesn't exist
97+
9598
end continuous_smul
9699

97100
section basics
@@ -137,34 +140,19 @@ namespace ActionTopology
137140

138141
section one
139142

143+
-- I use `mul_one` in this proof and in particular I use `1`.
144+
-- Is the lemma true if `R` doesn't have a `1`?
140145
protected lemma id (R : Type*) [Monoid R] [τ : TopologicalSpace R] [ContinuousMul R] :
141146
IsActionTopology R R := by
142147
constructor
143-
unfold actionTopology
144-
symm
145-
rw [← isGLB_iff_sInf_eq]
146-
constructor
147-
· intro σ hσ
148-
cases' hσ with
149-
rw [← continuous_id_iff_le]
150-
have foo : (id : R → R) = (fun ab ↦ ab.1 * ab.2 : R × R → R) ∘ (fun r ↦ (r, 1)) := by
151-
funext
152-
simp
153-
rw [foo]
154-
apply @Continuous.comp R (R × R) R τ (@instTopologicalSpaceProd R R τ σ)
155-
· apply hσ
156-
· refine @Continuous.prod_mk R R R ?_ ?_ ?_ ?_ ?_ ?_ ?_
157-
· refine @continuous_id R ?_
158-
· refine @continuous_const R R ?_ ?_ 1
159-
· intro σ hσ
160-
rw [mem_lowerBounds] at hσ
161-
apply hσ
162-
clear σ hσ
163-
simp
164-
constructor
165-
rename_i foo
166-
cases foo with
167-
| mk continuous_mul => exact continuous_mul
148+
refine le_antisymm ?_ (actionTopology_le R R)
149+
rw [← continuous_id_iff_le]
150+
rw [show (id : R → R) = (fun rs ↦ rs.1 • rs.2) ∘ (fun r ↦ (r, 1)) by ext; simp]
151+
apply @Continuous.comp R (R × R) R τ (@instTopologicalSpaceProd R R τ (actionTopology R R))
152+
(actionTopology R R)
153+
· exact @continuous_smul _ _ _ _ (actionTopology R R) <| ActionTopology.continuousSMul ..
154+
· exact @Continuous.prod_mk _ _ _ _ (actionTopology R R) _ _ _ continuous_id <|
155+
@continuous_const _ _ _ (actionTopology R R) _
168156

169157
end one
170158

@@ -176,34 +164,14 @@ variable {B : Type} [SMul R B] [aB : TopologicalSpace B] [IsActionTopology R B]
176164

177165
/-- Every `A`-linear map between two `A`-modules with the canonical topology is continuous. -/
178166
lemma continuous_of_mulActionHom (φ : A →[R] B) : Continuous φ := by
179-
-- Let's turn this question into an inequality question about coinduced topologies
180-
-- Now let's use the fact that τM and τN are action topologies (hence also coinduced)
181-
rw [isActionTopology R A, isActionTopology R B]
182-
unfold actionTopology
183-
rw [continuous_iff_le_induced]
184-
nth_rw 2 [sInf_eq_iInf]
185-
rw [induced_iInf] --induced_sInf missing?
186-
apply le_iInf
187-
simp only [Set.mem_setOf_eq, induced_iInf, le_iInf_iff]
188-
intro σN hσ
189-
apply sInf_le
190-
refine @ContinuousSMul.mk R A _ τR (TopologicalSpace.induced (⇑φ) σN) ?_
191-
rw [continuous_iff_le_induced]
192-
rw [induced_compose]
193-
rw [← continuous_iff_le_induced]
194-
rw [show φ ∘ (fun (p : R × A) ↦ p.1 • p.2) = fun rm ↦ rm.1 • φ (rm.2) by
195-
ext rm
196-
cases rm
197-
simp]
198-
obtain ⟨hσ'⟩ := hσ
199-
rw [continuous_iff_le_induced] at *
200-
have := induced_mono (g := fun (rm : R × A) ↦ (rm.1, φ (rm.2))) hσ'
201-
rw [induced_compose] at this
202-
refine le_trans ?_ this
203-
rw [← continuous_iff_le_induced]
204-
refine @Continuous.prod_map R B R A τR σN τR (TopologicalSpace.induced (φ : A → B) σN) id φ ?_ ?_
205-
· fun_prop
206-
· fun_prop
167+
-- the proof: We know that R × B → B is continuous for the action
168+
-- topology, and `induced_continuous_smul` says that R × A → A
169+
-- is continuous if A is given B's action topology pulled back along φ.
170+
-- Because the action topology is an Inf, this means that A's
171+
-- action topology is `≤` the the pullback of B's action topology.
172+
-- But this is precisely the statement that `φ` is continuous.
173+
rw [isActionTopology R A, continuous_iff_le_induced]
174+
exact sInf_le <| induced_continuous_smul continuous_id φ
207175

208176
end function
209177

@@ -220,14 +188,35 @@ variable {R : Type} [τR : TopologicalSpace R]
220188
variable {M : Type} [Zero M] [SMul R M] [aM : TopologicalSpace M] [IsActionTopology R M]
221189
variable {N : Type} [Zero N] [SMul R N] [aN : TopologicalSpace N] [IsActionTopology R N]
222190

191+
open TopologicalSpace in
223192
lemma prod [MulOneClass.{0} R] : IsActionTopology.{0} R (M × N) := by
224193
constructor
194+
-- goal: to prove product topology is action topology.
195+
-- Well product topology will obviously have continuous_smul becasue
196+
-- of continuous_smulprod or whatever, assuming that exists.
225197
--unfold instTopologicalSpaceProd actionTopology
226198
apply le_antisymm
227-
·
199+
· trans @instTopologicalSpaceProd M N (coinduced Prod.fst (actionTopology R (M × N))) (coinduced Prod.snd (actionTopology R (M × N)))
200+
· apply le_inf
201+
· rw [← continuous_iff_le_induced]
202+
rw [continuous_iff_coinduced_le]
203+
apply coinduced_mono
204+
sorry
205+
·
206+
sorry
207+
-- apply TopologicalSpace.prod_mono
228208
-- NOTE
229209
-- this is the one that isn't done
230210
rw [← continuous_id_iff_le]
211+
-- There is no more proof here.
212+
-- In the code below I go off on a tangent
213+
-- trying to prove something else,
214+
-- and then sorry this goal.
215+
216+
sorry
217+
sorry
218+
219+
#exit
231220

232221

233222
-- idea: map R x M -> M is R x M -> R x M x N, τR x σ
@@ -281,7 +270,7 @@ lemma prod [MulOneClass.{0} R] : IsActionTopology.{0} R (M × N) := by
281270
-- ·
282271
-- sorry
283272
-- sorry
284-
· sorry
273+
· apply actionTopology_le
285274
-- --have foo : @Continuous (M × N) (M × N) _ _ _ := @Continuous.prod_map M N M N (σMN.coinduced Prod.fst) (σMN.coinduced Prod.snd) aM aN id id ?_ ?_-- Z * W -> X * Y
286275
-- -- conjecture: pushforward of σMN is continuous
287276
-- -- ⊢ instTopologicalSpaceProd ≤ σMN

0 commit comments

Comments
 (0)