Zulip Chat Archive

Stream: maths

Topic: Is this statement about filters true?


Etienne Marion (Dec 09 2024 at 20:41):

Hi, I'm struggling to prove the following statement:

import Mathlib

open Filter Topology

example {X Y : Type*} [AddCommGroup X] [TopologicalSpace X] [ContinuousAdd X]
    (s : AddSubgroup X) (x y : X) (hs : Dense (s : Set X)) :
    Tendsto (fun a : s Γ— s ↦ (a.1 + a.2 : X)) (((𝓝 x).comap ((↑) : s β†’ X)) Γ—Λ’ ((𝓝 y).comap ((↑) : s β†’ X))) (𝓝 (x + y)) := by
  sorry

I am not sure whether it is true or not. What do you think? Maybe it requires more assumption on the topology?

Patrick Massot (Dec 09 2024 at 21:42):

Of course it’s true. But it has nothing to do with s being dense.

Patrick Massot (Dec 09 2024 at 21:42):

Asking for s to be dense is a remnant of the old time where βŠ₯ was not a filter and you could not have stated this.

Patrick Massot (Dec 09 2024 at 21:43):

Maybe you are missing docs#Filter.comap_prodMap_prod ?

Patrick Massot (Dec 09 2024 at 21:44):

And you need to use that https://q.uiver.app/#q=WzAsMyxbMCwwLCJzIMOXIHMiXSxbMCwxLCJYIMOXIFgiXSxbMSwwLCJYIl0sWzAsMSwizrkgw5cgzrkiLDJdLFswLDIsIitfcyJdLFsxLDIsIitfWCIsMl1d commutes.

Patrick Massot (Dec 09 2024 at 21:45):

which is rfl (or maybe ext; rfl…).

Patrick Massot (Dec 09 2024 at 21:46):

Note is also has nothing to do with s being a subgroup. Is it really what you wanted to state?

Etienne Marion (Dec 10 2024 at 15:56):

Thanks for your answer. This is indeed the statement I intended to prove. I had already found these ingredients but I did not use them in the right way it seems :sweat_smile: Also I agree that the density hypothesis is useless, I was struggling without it and as in my context it was true I thought maybe it would help. The subgroup hypothesis is necessary in my context but that doesn't matter. Anyway thanks for your reply as it convinced me that it was true and I managed the proof!

import Mathlib

open Filter Topology

example {X : Type*} [AddCommGroup X] [TopologicalSpace X] [ContinuousAdd X]
    (s : Set X) (x y : X) :
    Tendsto (fun a : s Γ— s ↦ (a.1 + a.2 : X)) (((𝓝 x).comap ((↑) : s β†’ X)) Γ—Λ’ ((𝓝 y).comap ((↑) : s β†’ X))) (𝓝 (x + y)) := by
  have : (fun x : s Γ— s ↦ (x.1 : X) + x.2) = (fun x ↦ x.1 + x.2) ∘ (Prod.map Subtype.val Subtype.val) := by
    ext x; simp
  rw [← comap_prodMap_prod, this, ← tendsto_map'_iff, ← nhds_prod_eq]
  exact (continuous_add.tendsto (x, y)).mono_left map_comap_le

Patrick Massot (Dec 10 2024 at 20:32):

I checked with Lean and actually my commutative diagram is sufficiently rfl that Lean does not need it. So you can go with

example {X : Type*} [AddCommGroup X] [TopologicalSpace X] [ContinuousAdd X]
    (s : Set X) (x y : X) :
    Tendsto (fun a : s Γ— s ↦ (a.1 + a.2 : X)) (((𝓝 x).comap ((↑) : s β†’ X)) Γ—Λ’ ((𝓝 y).comap ((↑) : s β†’ X))) (𝓝 (x + y)) := by
  rw [← Filter.comap_prodMap_prod, ← nhds_prod_eq]
  exact tendsto_add.comp tendsto_comap

Etienne Marion (Dec 10 2024 at 20:35):

I see, thanks!

Patrick Massot (Dec 10 2024 at 20:35):

where docs#Filter.tendsto_comap is the co-unit of the adjunction between direct image and inverse image but phrased as a Tendsto.


Last updated: May 02 2025 at 03:31 UTC