Zulip Chat Archive

Stream: maths

Topic: topology on filters?


Yury G. Kudryashov (May 12 2022 at 07:16):

Is there any reasonable topology on filter X such that, e.g., in case of a topological space, the nhds map is continuous (or even inducing)?

Kevin Buzzard (May 12 2022 at 07:21):

Nice question!

Kevin Buzzard (May 12 2022 at 07:29):

Naive idea: a basis of open sets is indexed by the opens U in X, with the set B(U) being the filters that contain U as an element. Only works for topological spaces though so not exactly what you want

David Wärn (May 12 2022 at 07:40):

The topology on ultrafilters given by docs#ultrafilter_basis actually defines a natural topology on filter X. This is the same as Kevin's suggestion except it uses all U instead of only the opens. Either way, nhds should be inducing since the preimage of B(U) is the interior of U (I think?), which is an arbitrary open subset of X

Yury G. Kudryashov (May 12 2022 at 07:57):

/me is going to reread this in the morning

Yury G. Kudryashov (May 12 2022 at 19:26):

Indeed,

import topology.maps

open set filter topological_space
open_locale filter topological_space

variables {X : Type*}

namespace filter

instance : topological_space (filter X) :=
generate_from $ range $ λ s : set X, {l : filter X | s  l}

lemma nhds_eq (l : filter X) : 𝓝 l =  s  l, 𝓟 {l' | s  l'} :=
begin
  refine nhds_generate_from.trans _,
  simp only [mem_set_of_eq, and_comm (l  _), infi_and, infi_range]
end

lemma inducing_nhds [topological_space X] : inducing (𝓝 : X  filter X) :=
begin
  refine eq_of_nhds_eq_nhds $ λ x, _⟩,
  simp only [nhds_induced, nhds_eq, comap_infi, comap_principal],
  refine le_antisymm (le_infi₂ $ λ s hs, le_principal_iff.2 _) (λ s hs, _),
  { filter_upwards [interior_mem_nhds.mpr hs] with y using mem_interior_iff_mem_nhds.mp },
  { exact mem_infi_of_mem s (mem_infi_of_mem hs $ λ y, mem_of_mem_nhds) }
end

end filter

Yaël Dillies (May 12 2022 at 22:14):

Is that somehow related to the topology on set α that I wanted? For reference, I need to prove

example (f :   ) (hf : continuous f) : continuous (λ ab : α × α,  x  Icc a b, f x) := sorry

for Sharkovskii's theorem, and I feel like it would naturally decompose into

example : continuous (uncurry Icc :  ×   set ) := sorry

example {α : Type*} [topological_space α] (f :   ) (hf : continuous f) (s : α  set )
  (hs : continuous s) :
  continuous (λ a,  x  s a, f x) := sorry

had we topological_space (set ℝ).

Yury G. Kudryashov (May 13 2022 at 00:50):

Which topology on set X are you talking about? Some specific topology? I can imagine different topologies.

Yury G. Kudryashov (May 13 2022 at 00:52):

E.g., you can introduce a topology based on docs#emetric.Hausdorff_edist

Reid Barton (May 13 2022 at 01:18):

Yes, but this should be for nonempty compact sets (like Icc a b)

Yury G. Kudryashov (May 14 2022 at 16:08):

Another equivalent approach to topology on filter α:

import order.filter.lift
import topology.maps

open set filter topological_space
open_locale filter topological_space

variables {ι : Sort*} {α X : Type*}

def Iic_topology {α β : Type*} [semilattice_inf α] [semilattice_inf β] (f : α  β)
  (hf_inf :  x y, f (x  y) = f x  f y) (hf :  y,  x, y  f x) : topological_space β :=
{ is_open := λ s,  t : set α, ( x  t, Iic (f x)) = s,
  is_open_univ := univ, Union₂_eq_univ_iff.2 $ λ y, (hf y).imp (λ x hx, mem_univ _, hx⟩)⟩,
  is_open_inter :=
    begin
      rintro _ _ s, rfl t, rfl⟩,
      refine image2 () s t, _⟩,
      simp only [image2_eq_Union, bUnion_Union, bUnion_singleton, inter_Union, Union_inter,
        Iic_inter_Iic, hf_inf]
    end,
  is_open_sUnion := λ s hs,
    begin
      choose! T hT using hs,
      use  t  s, T t,
      simp only [bUnion_Union, hT, sUnion_eq_bUnion] { contextual := tt },
    end }

namespace filter

instance : topological_space (filter α) :=
generate_from $ range $ λ s : set α, {l : filter α | s  l}

lemma topology_eq :
  filter.topological_space = Iic_topology (𝓟 : set α  filter α) (λ _ _, inf_principal.symm)
    (λ l, univ, le_principal_iff.2 univ_mem⟩) :=
begin
  have :  s : set α, Iic (𝓟 s) = {l | s  l}, by simp [Iic],
  refine le_antisymm (λ s hs, _) (le_generate_from_iff_subset_is_open.2 $ range_subset_iff.2 _),
  { rcases hs with t, rfl⟩,
    exact is_open_bUnion (λ s hs, generate_open.basic _ s, (this s).symm⟩) },
  { refine λ s, ⟨{s}, _⟩,
    rw [bUnion_singleton, this] }
end

lemma is_open_iff {s : set (filter α)} :
  is_open s   T : set (set α), ( t  T, Iic (𝓟 t)) = s :=
by { rw [topology_eq], refl }

Last updated: Dec 20 2023 at 11:08 UTC