Zulip Chat Archive

Stream: Is there code for X?

Topic: Sequential compactness under sequentially cont functions


Janette Setälä (Jul 04 2024 at 08:23):

I did not find the following from Mathlib. If it's indeed missing, is a PR welcome?

import Mathlib.Topology.Defs.Sequences

lemma IsSeqCompact.image {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y] (f : X → Y)
    (f_cont : SeqContinuous f) {K : Set X} (K_cpt : IsSeqCompact K) : IsSeqCompact (f '' K) := by
  intro ys ys_in_fK
  let xs := fun n ↦ Exists.choose (ys_in_fK n)
  obtain ⟨xs_in_K, fxs_eq_ys⟩ : (∀ n, xs n ∈ K) ∧ ∀ n, f (xs n) = ys n :=
    forall_and.mp fun n ↦ Exists.choose_spec (ys_in_fK n)
  simp only [Set.mem_image, exists_exists_and_eq_and]
  obtain ⟨a, a_in_K, phi, phi_mono, xs_phi_lim⟩ := K_cpt xs_in_K
  refine ⟨a, a_in_K, phi, phi_mono, ?_⟩
  exact Filter.Tendsto.congr (fun x ↦ fxs_eq_ys (phi x)) (f_cont xs_phi_lim)

lemma SeqCompactSpace.range {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y] [SeqCompactSpace X]
    (f : X → Y) (hf : SeqContinuous f) : IsSeqCompact (Set.range f) := by
  rw [← Set.image_univ]
  exact IsSeqCompact.image f hf ((seqCompactSpace_iff X).mp ‹SeqCompactSpace X›)

Yury G. Kudryashov (Jul 04 2024 at 21:47):

Please PR!

Yury G. Kudryashov (Jul 04 2024 at 21:48):

BTW, you can use tactic choose to get xs

Janette Setälä (Jul 05 2024 at 12:46):

Thank you!

Janette Setälä (Jul 08 2024 at 09:26):

PR #14504


Last updated: Feb 28 2026 at 14:05 UTC