Documentation

Mathlib.Topology.UniformSpace.Cauchy

Theory of Cauchy filters in uniform spaces. Complete uniform spaces. Totally bounded subsets. #

def Cauchy {α : Type u} [uniformSpace : UniformSpace α] (f : Filter α) :

A filter f is Cauchy if for every entourage r, there exists an s ∈ f such that s Ɨ s āŠ† r. This is a generalization of Cauchy sequences, because if a : ā„• → α then the filter of sets containing cofinitely many of the a n is Cauchy iff a is a Cauchy sequence.

Equations
    Instances For
      def IsComplete {α : Type u} [uniformSpace : UniformSpace α] (s : Set α) :

      A set s is called complete, if any Cauchy filter f such that s ∈ f has a limit in s (formally, it satisfies f ≤ š“ x for some x ∈ s).

      Equations
        Instances For
          theorem Filter.HasBasis.cauchy_iff {α : Type u} [uniformSpace : UniformSpace α] {ι : Sort u_1} {p : ι → Prop} {s : ι → SetRel α α} (h : (uniformity α).HasBasis p s) {f : Filter α} :
          Cauchy f ↔ f.NeBot ∧ āˆ€ (i : ι), p i → ∃ t ∈ f, āˆ€ x ∈ t, āˆ€ y ∈ t, (x, y) ∈ s i
          theorem cauchy_iff' {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} :
          Cauchy f ↔ f.NeBot ∧ āˆ€ s ∈ uniformity α, ∃ t ∈ f, āˆ€ x ∈ t, āˆ€ y ∈ t, (x, y) ∈ s
          theorem cauchy_iff {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} :
          Cauchy f ↔ f.NeBot ∧ āˆ€ s ∈ uniformity α, ∃ t ∈ f, t Ć—Ė¢ t āŠ† s
          theorem cauchy_iff_le {α : Type u} [uniformSpace : UniformSpace α] {l : Filter α} [hl : l.NeBot] :
          theorem Cauchy.ultrafilter_of {α : Type u} [uniformSpace : UniformSpace α] {l : Filter α} (h : Cauchy l) :
          theorem cauchy_map_iff {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] {l : Filter β} {f : β → α} :
          Cauchy (Filter.map f l) ↔ l.NeBot ∧ Filter.Tendsto (fun (p : β Ɨ β) => (f p.1, f p.2)) (l Ć—Ė¢ l) (uniformity α)
          theorem cauchy_map_iff' {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] {l : Filter β} [hl : l.NeBot] {f : β → α} :
          Cauchy (Filter.map f l) ↔ Filter.Tendsto (fun (p : β Ɨ β) => (f p.1, f p.2)) (l Ć—Ė¢ l) (uniformity α)
          theorem Cauchy.mono {α : Type u} [uniformSpace : UniformSpace α] {f g : Filter α} [hg : g.NeBot] (h_c : Cauchy f) (h_le : g ≤ f) :
          theorem Cauchy.mono' {α : Type u} [uniformSpace : UniformSpace α] {f g : Filter α} (h_c : Cauchy f) :
          g.NeBot → āˆ€ (h_le : g ≤ f), Cauchy g
          theorem cauchy_nhds {α : Type u} [uniformSpace : UniformSpace α] {a : α} :
          theorem cauchy_pure {α : Type u} [uniformSpace : UniformSpace α] {a : α} :
          theorem Filter.Tendsto.cauchy_map {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] {l : Filter β} [l.NeBot] {f : β → α} {a : α} (h : Tendsto f l (nhds a)) :
          Cauchy (map f l)
          theorem Cauchy.mono_uniformSpace {β : Type v} {u v : UniformSpace β} {F : Filter β} (huv : u ≤ v) (hF : Cauchy F) :
          theorem cauchy_iInf_uniformSpace {β : Type v} {ι : Sort u_1} [Nonempty ι] {u : ι → UniformSpace β} {l : Filter β} :
          Cauchy l ↔ āˆ€ (i : ι), Cauchy l
          theorem cauchy_iInf_uniformSpace' {β : Type v} {ι : Sort u_1} {u : ι → UniformSpace β} {l : Filter β} [l.NeBot] :
          Cauchy l ↔ āˆ€ (i : ι), Cauchy l
          theorem cauchy_comap_uniformSpace {β : Type v} {u : UniformSpace β} {α : Type u_1} {f : α → β} {l : Filter α} :
          theorem cauchy_prod_iff {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [UniformSpace β] {F : Filter (α Ɨ β)} :
          theorem Cauchy.prod {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [UniformSpace β] {f : Filter α} {g : Filter β} (hf : Cauchy f) (hg : Cauchy g) :
          theorem le_nhds_of_cauchy_adhp_aux {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} {x : α} (adhs : āˆ€ s ∈ uniformity α, ∃ t ∈ f, t Ć—Ė¢ t āŠ† s ∧ ∃ (y : α), (x, y) ∈ s ∧ y ∈ t) :

          The common part of the proofs of le_nhds_of_cauchy_adhp and SequentiallyComplete.le_nhds_of_seq_tendsto_nhds: if for any entourage s one can choose a set t ∈ f of diameter s such that it contains a point y with (x, y) ∈ s, then f converges to x.

          theorem le_nhds_of_cauchy_adhp {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} {x : α} (hf : Cauchy f) (adhs : ClusterPt x f) :

          If x is an adherent (cluster) point for a Cauchy filter f, then it is a limit point for f.

          theorem le_nhds_iff_adhp_of_cauchy {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} {x : α} (hf : Cauchy f) :
          theorem Cauchy.map {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [UniformSpace β] {f : Filter α} {m : α → β} (hf : Cauchy f) (hm : UniformContinuous m) :
          theorem Cauchy.comap {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [UniformSpace β] {f : Filter β} {m : α → β} (hf : Cauchy f) (hm : Filter.comap (fun (p : α Ɨ α) => (m p.1, m p.2)) (uniformity β) ≤ uniformity α) [(Filter.comap m f).NeBot] :
          theorem Cauchy.comap' {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [UniformSpace β] {f : Filter β} {m : α → β} (hf : Cauchy f) (hm : Filter.comap (fun (p : α Ɨ α) => (m p.1, m p.2)) (uniformity β) ≤ uniformity α) :
          def CauchySeq {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [Preorder β] (u : β → α) :

          Cauchy sequences. Usually defined on ā„•, but often it is also useful to say that a function defined on ā„ is Cauchy at +āˆž to deduce convergence. Therefore, we define it in a type class that is general enough to cover both ā„• and ā„, which are the main motivating examples.

          Equations
            Instances For
              theorem CauchySeq.tendsto_uniformity {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [Preorder β] {u : β → α} (h : CauchySeq u) :
              theorem CauchySeq.nonempty {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [Preorder β] {u : β → α} (hu : CauchySeq u) :
              theorem CauchySeq.mem_entourage {α : Type u} [uniformSpace : UniformSpace α] {β : Type u_1} [SemilatticeSup β] {u : β → α} (h : CauchySeq u) {V : SetRel α α} (hV : V ∈ uniformity α) :
              ∃ (kā‚€ : β), āˆ€ (i j : β), kā‚€ ≤ i → kā‚€ ≤ j → (u i, u j) ∈ V
              theorem Filter.Tendsto.cauchySeq {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [SemilatticeSup β] [Nonempty β] {f : β → α} {x : α} (hx : Tendsto f atTop (nhds x)) :
              theorem cauchySeq_const {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [SemilatticeSup β] [Nonempty β] (x : α) :
              CauchySeq fun (x_1 : β) => x
              theorem cauchySeq_iff_tendsto {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [Nonempty β] [SemilatticeSup β] {u : β → α} :
              theorem CauchySeq.comp_tendsto {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] {γ : Type u_1} [Preorder β] [SemilatticeSup γ] [Nonempty γ] {f : β → α} (hf : CauchySeq f) {g : γ → β} (hg : Filter.Tendsto g Filter.atTop Filter.atTop) :
              theorem CauchySeq.comp_injective {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [SemilatticeSup β] [NoMaxOrder β] [Nonempty β] {u : ā„• → α} (hu : CauchySeq u) {f : β → ā„•} (hf : Function.Injective f) :
              theorem Function.Bijective.cauchySeq_comp_iff {α : Type u} [uniformSpace : UniformSpace α] {f : ā„• → ā„•} (hf : Bijective f) (u : ā„• → α) :
              theorem CauchySeq.subseq_subseq_mem {α : Type u} [uniformSpace : UniformSpace α] {V : ā„• → SetRel α α} (hV : āˆ€ (n : ā„•), V n ∈ uniformity α) {u : ā„• → α} (hu : CauchySeq u) {f g : ā„• → ā„•} (hf : Filter.Tendsto f Filter.atTop Filter.atTop) (hg : Filter.Tendsto g Filter.atTop Filter.atTop) :
              ∃ (φ : ā„• → ā„•), StrictMono φ ∧ āˆ€ (n : ā„•), ((u ∘ f ∘ φ) n, (u ∘ g ∘ φ) n) ∈ V n
              theorem cauchySeq_iff' {α : Type u} [uniformSpace : UniformSpace α] {u : ā„• → α} :
              theorem cauchySeq_iff {α : Type u} [uniformSpace : UniformSpace α] {u : ā„• → α} :
              CauchySeq u ↔ āˆ€ V ∈ uniformity α, ∃ (N : ā„•), āˆ€ k ≄ N, āˆ€ l ≄ N, (u k, u l) ∈ V
              theorem CauchySeq.prodMap {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] {γ : Type u_1} {Ī“ : Type u_2} [UniformSpace β] [Preorder γ] [Preorder Ī“] {u : γ → α} {v : Ī“ → β} (hu : CauchySeq u) (hv : CauchySeq v) :
              theorem CauchySeq.prodMk {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] {γ : Type u_1} [UniformSpace β] [Preorder γ] {u : γ → α} {v : γ → β} (hu : CauchySeq u) (hv : CauchySeq v) :
              CauchySeq fun (x : γ) => (u x, v x)
              theorem CauchySeq.eventually_eventually {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [Preorder β] {u : β → α} (hu : CauchySeq u) {V : SetRel α α} (hV : V ∈ uniformity α) :
              āˆ€į¶  (k : β) (l : β) in Filter.atTop, (u k, u l) ∈ V
              theorem UniformContinuous.comp_cauchySeq {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] {γ : Type u_1} [UniformSpace β] [Preorder γ] {f : α → β} (hf : UniformContinuous f) {u : γ → α} (hu : CauchySeq u) :
              theorem CauchySeq.subseq_mem {α : Type u} [uniformSpace : UniformSpace α] {V : ā„• → SetRel α α} (hV : āˆ€ (n : ā„•), V n ∈ uniformity α) {u : ā„• → α} (hu : CauchySeq u) :
              ∃ (φ : ā„• → ā„•), StrictMono φ ∧ āˆ€ (n : ā„•), (u (φ (n + 1)), u (φ n)) ∈ V n
              theorem Filter.Tendsto.subseq_mem_entourage {α : Type u} [uniformSpace : UniformSpace α] {V : ā„• → SetRel α α} (hV : āˆ€ (n : ā„•), V n ∈ uniformity α) {u : ā„• → α} {a : α} (hu : Tendsto u atTop (nhds a)) :
              ∃ (φ : ā„• → ā„•), StrictMono φ ∧ (u (φ 0), a) ∈ V 0 ∧ āˆ€ (n : ā„•), (u (φ (n + 1)), u (φ n)) ∈ V (n + 1)
              theorem tendsto_nhds_of_cauchySeq_of_subseq {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [Preorder β] {u : β → α} (hu : CauchySeq u) {ι : Type u_1} {f : ι → β} {p : Filter ι} [p.NeBot] (hf : Filter.Tendsto f p Filter.atTop) {a : α} (ha : Filter.Tendsto (u ∘ f) p (nhds a)) :

              If a Cauchy sequence has a convergent subsequence, then it converges.

              theorem cauchySeq_shift {α : Type u} [uniformSpace : UniformSpace α] {u : ā„• → α} (k : ā„•) :
              (CauchySeq fun (n : ā„•) => u (n + k)) ↔ CauchySeq u

              Any shift of a Cauchy sequence is also a Cauchy sequence.

              theorem Filter.HasBasis.cauchySeq_iff {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] {γ : Sort u_1} [Nonempty β] [SemilatticeSup β] {u : β → α} {p : γ → Prop} {s : γ → SetRel α α} (h : (uniformity α).HasBasis p s) :
              CauchySeq u ↔ āˆ€ (i : γ), p i → ∃ (N : β), āˆ€ (m : β), N ≤ m → āˆ€ (n : β), N ≤ n → (u m, u n) ∈ s i
              theorem Filter.HasBasis.cauchySeq_iff' {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] {γ : Sort u_1} [Nonempty β] [SemilatticeSup β] {u : β → α} {p : γ → Prop} {s : γ → SetRel α α} (H : (uniformity α).HasBasis p s) :
              CauchySeq u ↔ āˆ€ (i : γ), p i → ∃ (N : β), āˆ€ n ≄ N, (u n, u N) ∈ s i
              theorem cauchySeq_of_controlled {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [SemilatticeSup β] [Nonempty β] (U : β → SetRel α α) (hU : āˆ€ s ∈ uniformity α, ∃ (n : β), U n āŠ† s) {f : β → α} (hf : āˆ€ ⦃N m n : β⦄, N ≤ m → N ≤ n → (f m, f n) ∈ U N) :
              theorem isComplete_iff_clusterPt {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} :
              IsComplete s ↔ āˆ€ (l : Filter α), Cauchy l → l ≤ Filter.principal s → ∃ x ∈ s, ClusterPt x l
              theorem isComplete_iff_ultrafilter {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} :
              IsComplete s ↔ āˆ€ (l : Ultrafilter α), Cauchy ↑l → ↑l ≤ Filter.principal s → ∃ x ∈ s, ↑l ≤ nhds x
              theorem isComplete_iff_ultrafilter' {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} :
              IsComplete s ↔ āˆ€ (l : Ultrafilter α), Cauchy ↑l → s ∈ l → ∃ x ∈ s, ↑l ≤ nhds x
              theorem IsComplete.union {α : Type u} [uniformSpace : UniformSpace α] {s t : Set α} (hs : IsComplete s) (ht : IsComplete t) :
              theorem isComplete_iUnion_separated {α : Type u} [uniformSpace : UniformSpace α] {ι : Sort u_1} {s : ι → Set α} (hs : āˆ€ (i : ι), IsComplete (s i)) {U : SetRel α α} (hU : U ∈ uniformity α) (hd : āˆ€ (i j : ι), āˆ€ x ∈ s i, āˆ€ y ∈ s j, (x, y) ∈ U → i = j) :
              IsComplete (ā‹ƒ (i : ι), s i)
              class CompleteSpace (α : Type u) [UniformSpace α] :

              A complete space is defined here using uniformities. A uniform space is complete if every Cauchy filter converges.

              • complete {f : Filter α} : Cauchy f → ∃ (x : α), f ≤ nhds x

                In a complete uniform space, every Cauchy filter converges.

              Instances
                instance CompleteSpace.prod {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [UniformSpace β] [CompleteSpace α] [CompleteSpace β] :
                CompleteSpace (α Ɨ β)
                theorem CompleteSpace.fst_of_prod {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [UniformSpace β] [CompleteSpace (α Ɨ β)] [h : Nonempty β] :
                theorem CompleteSpace.snd_of_prod {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [UniformSpace β] [CompleteSpace (α Ɨ β)] [h : Nonempty α] :
                theorem completeSpace_prod_of_nonempty {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [UniformSpace β] [Nonempty α] [Nonempty β] :
                theorem completeSpace_of_isComplete_univ {α : Type u} [uniformSpace : UniformSpace α] (h : IsComplete Set.univ) :

                If univ is complete, the space is a complete space

                theorem completeSpace_iff_ultrafilter {α : Type u} [uniformSpace : UniformSpace α] :
                CompleteSpace α ↔ āˆ€ (l : Ultrafilter α), Cauchy ↑l → ∃ (x : α), ↑l ≤ nhds x
                theorem cauchy_iff_exists_le_nhds {α : Type u} [uniformSpace : UniformSpace α] [CompleteSpace α] {l : Filter α} [l.NeBot] :
                Cauchy l ↔ ∃ (x : α), l ≤ nhds x
                theorem cauchy_map_iff_exists_tendsto {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [CompleteSpace α] {l : Filter β} {f : β → α} [l.NeBot] :
                Cauchy (Filter.map f l) ↔ ∃ (x : α), Filter.Tendsto f l (nhds x)
                theorem cauchySeq_tendsto_of_complete {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [Preorder β] [CompleteSpace α] {u : β → α} (H : CauchySeq u) :
                ∃ (x : α), Filter.Tendsto u Filter.atTop (nhds x)

                A Cauchy sequence in a complete space converges

                theorem cauchySeq_tendsto_of_isComplete {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [Preorder β] {K : Set α} (h₁ : IsComplete K) {u : β → α} (hā‚‚ : āˆ€ (n : β), u n ∈ K) (hā‚ƒ : CauchySeq u) :
                ∃ v ∈ K, Filter.Tendsto u Filter.atTop (nhds v)

                If K is a complete subset, then any Cauchy sequence in K converges to a point in K

                theorem Cauchy.le_nhds_lim {α : Type u} [uniformSpace : UniformSpace α] [CompleteSpace α] {f : Filter α} (hf : Cauchy f) :
                theorem CauchySeq.tendsto_limUnder {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [Preorder β] [CompleteSpace α] {u : β → α} (h : CauchySeq u) :
                theorem IsClosed.isComplete {α : Type u} [uniformSpace : UniformSpace α] [CompleteSpace α] {s : Set α} (h : IsClosed s) :
                theorem DiscreteUniformity.eq_pure_of_cauchy {α : Type u} [uniformSpace : UniformSpace α] [DiscreteUniformity α] {f : Filter α} (hf : Cauchy f) :
                ∃ (x : α), f = pure x

                A Cauchy filter in a discrete uniform space is contained in the principal filter of a point.

                instance DiscreteUniformity.instCompleteSpace {α : Type u} [uniformSpace : UniformSpace α] [DiscreteUniformity α] :

                The discrete uniformity makes a space complete.

                noncomputable def DiscreteUniformity.cauchyConst {α : Type u} [uniformSpace : UniformSpace α] [DiscreteUniformity α] {f : Filter α} (hf : Cauchy f) :
                α

                A constant to which a Cauchy filter in a discrete uniform space converges.

                Equations
                  Instances For
                    theorem DiscreteUniformity.eq_pure_cauchyConst {α : Type u} [uniformSpace : UniformSpace α] [DiscreteUniformity α] {f : Filter α} (hf : Cauchy f) :
                    def TotallyBounded {α : Type u} [uniformSpace : UniformSpace α] (s : Set α) :

                    A set s is totally bounded if for every entourage d there is a finite set of points t such that every element of s is d-near to some element of t.

                    Equations
                      Instances For
                        def Filter.TotallyBounded {α : Type u} [uniformSpace : UniformSpace α] (f : Filter α) :

                        A filter f is totally bounded if for every entourage d, the d-neighborhood of some finite set is in f.

                        Equations
                          Instances For
                            theorem Filter.TotallyBounded.exists_subset_of_mem {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : f.TotallyBounded) {s : Set α} (hs : s ∈ f) {U : SetRel α α} (hU : U ∈ uniformity α) :
                            ∃ t āŠ† s, t.Finite ∧ U.preimage t ∈ f
                            theorem TotallyBounded.exists_subset {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} (hs : TotallyBounded s) {U : SetRel α α} (hU : U ∈ uniformity α) :
                            ∃ t āŠ† s, t.Finite ∧ s āŠ† ā‹ƒ y ∈ t, {x : α | (x, y) ∈ U}
                            theorem totallyBounded_iff_subset {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} :
                            TotallyBounded s ↔ āˆ€ d ∈ uniformity α, ∃ t āŠ† s, t.Finite ∧ s āŠ† ā‹ƒ y ∈ t, {x : α | (x, y) ∈ d}
                            theorem Filter.HasBasis.totallyBounded_iff {α : Type u} [uniformSpace : UniformSpace α] {ι : Sort u_1} {p : ι → Prop} {U : ι → SetRel α α} (H : (uniformity α).HasBasis p U) {s : Set α} :
                            TotallyBounded s ↔ āˆ€ (i : ι), p i → ∃ (t : Set α), t.Finite ∧ s āŠ† ā‹ƒ y ∈ t, {x : α | (x, y) ∈ U i}
                            theorem Filter.HasBasis.filter_totallyBounded_iff {α : Type u} [uniformSpace : UniformSpace α] {ι : Sort u_1} {p : ι → Prop} {U : ι → SetRel α α} (H : (uniformity α).HasBasis p U) {f : Filter α} :
                            f.TotallyBounded ↔ āˆ€ (i : ι), p i → ∃ (t : Set α), t.Finite ∧ (U i).preimage t ∈ f
                            theorem totallyBounded_of_forall_isSymm {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} (h : āˆ€ V ∈ uniformity α, SetRel.IsSymm V → ∃ (t : Set α), t.Finite ∧ s āŠ† ā‹ƒ y ∈ t, UniformSpace.ball y V) :
                            theorem TotallyBounded.subset {α : Type u} [uniformSpace : UniformSpace α] {s₁ sā‚‚ : Set α} (hs : s₁ āŠ† sā‚‚) (h : TotallyBounded sā‚‚) :
                            theorem Filter.TotallyBounded.mono {α : Type u} [uniformSpace : UniformSpace α] {f g : Filter α} (h : f ≤ g) (hg : g.TotallyBounded) :
                            theorem TotallyBounded.closure {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} (h : TotallyBounded s) :

                            The closure of a totally bounded set is totally bounded.

                            @[simp]
                            theorem totallyBounded_closure {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} :
                            @[simp]
                            theorem Filter.totallyBounded_iSup {α : Type u} [uniformSpace : UniformSpace α] {ι : Sort u_1} [Finite ι] {f : ι → Filter α} :
                            (⨆ (i : ι), f i).TotallyBounded ↔ āˆ€ (i : ι), (f i).TotallyBounded
                            theorem Filter.totallyBounded_biSup {α : Type u} [uniformSpace : UniformSpace α] {ι : Type u_1} {I : Set ι} (hI : I.Finite) {f : ι → Filter α} :
                            (⨆ i ∈ I, f i).TotallyBounded ↔ āˆ€ i ∈ I, (f i).TotallyBounded
                            theorem totallyBounded_sSup {α : Type u} [uniformSpace : UniformSpace α] {S : Set (Filter α)} (hS : S.Finite) :
                            (sSup S).TotallyBounded ↔ āˆ€ f ∈ S, f.TotallyBounded
                            @[simp]
                            theorem totallyBounded_iUnion {α : Type u} [uniformSpace : UniformSpace α] {ι : Sort u_1} [Finite ι] {s : ι → Set α} :
                            TotallyBounded (ā‹ƒ (i : ι), s i) ↔ āˆ€ (i : ι), TotallyBounded (s i)

                            A finite indexed union is totally bounded if and only if each set of the family is totally bounded.

                            theorem totallyBounded_biUnion {α : Type u} [uniformSpace : UniformSpace α] {ι : Type u_1} {I : Set ι} (hI : I.Finite) {s : ι → Set α} :
                            TotallyBounded (ā‹ƒ i ∈ I, s i) ↔ āˆ€ i ∈ I, TotallyBounded (s i)

                            A union indexed by a finite set is totally bounded if and only if each set of the family is totally bounded.

                            theorem totallyBounded_sUnion {α : Type u} [uniformSpace : UniformSpace α] {S : Set (Set α)} (hS : S.Finite) :

                            A union of a finite family of sets is totally bounded if and only if each set of the family is totally bounded.

                            theorem Set.Finite.totallyBounded {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} (hs : s.Finite) :

                            A finite set is totally bounded.

                            theorem Set.Subsingleton.totallyBounded {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} (hs : s.Subsingleton) :

                            A subsingleton is totally bounded.

                            @[simp]
                            theorem totallyBounded_singleton {α : Type u} [uniformSpace : UniformSpace α] (a : α) :
                            @[simp]
                            theorem totallyBounded_empty {α : Type u} [uniformSpace : UniformSpace α] :
                            @[simp]
                            theorem totallyBounded_union {α : Type u} [uniformSpace : UniformSpace α] {s t : Set α} :

                            The union of two sets is totally bounded if and only if each of the two sets is totally bounded.

                            theorem TotallyBounded.union {α : Type u} [uniformSpace : UniformSpace α] {s t : Set α} (hs : TotallyBounded s) (ht : TotallyBounded t) :

                            The union of two totally bounded sets is totally bounded.

                            @[simp]
                            theorem totallyBounded_insert {α : Type u} [uniformSpace : UniformSpace α] (a : α) {s : Set α} :
                            theorem TotallyBounded.insert {α : Type u} [uniformSpace : UniformSpace α] (a : α) {s : Set α} :

                            Alias of the reverse direction of totallyBounded_insert.

                            @[simp]
                            theorem Filter.totallyBounded_sup {α : Type u} [uniformSpace : UniformSpace α] {f g : Filter α} :
                            theorem Filter.TotallyBounded.sup {α : Type u} [uniformSpace : UniformSpace α] {f g : Filter α} (hf : f.TotallyBounded) (hg : g.TotallyBounded) :
                            (f āŠ” g).TotallyBounded
                            theorem Filter.TotallyBounded.map {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [UniformSpace β] {f : α → β} {g : Filter α} (hg : g.TotallyBounded) (hf : UniformContinuous f) :
                            theorem TotallyBounded.image {α : Type u} {β : Type v} [uniformSpace : UniformSpace α] [UniformSpace β] {f : α → β} {s : Set α} (hs : TotallyBounded s) (hf : UniformContinuous f) :

                            The image of a totally bounded set under a uniformly continuous map is totally bounded.

                            theorem Ultrafilter.cauchy_of_totallyBounded' {α : Type u} [uniformSpace : UniformSpace α] (f : Ultrafilter α) (hf : (↑f).TotallyBounded) :
                            Cauchy ↑f
                            theorem Ultrafilter.cauchy_of_totallyBounded {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} (f : Ultrafilter α) (hs : TotallyBounded s) (h : ↑f ≤ Filter.principal s) :
                            Cauchy ↑f
                            theorem Filter.totallyBounded_iff_filter {α : Type u} [uniformSpace : UniformSpace α] {g : Filter α} :
                            g.TotallyBounded ↔ āˆ€ (f : Filter α), f.NeBot → f ≤ g → ∃ c ≤ f, Cauchy c
                            theorem Filter.totallyBounded_iff_ultrafilter {α : Type u} [uniformSpace : UniformSpace α] {g : Filter α} :
                            g.TotallyBounded ↔ āˆ€ (f : Ultrafilter α), ↑f ≤ g → Cauchy ↑f
                            theorem totallyBounded_iff_filter {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} :
                            TotallyBounded s ↔ āˆ€ (f : Filter α), f.NeBot → f ≤ Filter.principal s → ∃ c ≤ f, Cauchy c
                            theorem totallyBounded_iff_ultrafilter {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} :
                            TotallyBounded s ↔ āˆ€ (f : Ultrafilter α), ↑f ≤ Filter.principal s → Cauchy ↑f
                            theorem IsCompact.totallyBounded {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} (h : IsCompact s) :
                            theorem IsCompact.isComplete {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} (h : IsCompact s) :
                            @[instance 100]
                            instance complete_of_compact {α : Type u} [UniformSpace α] [CompactSpace α] :
                            theorem TotallyBounded.isCompact_of_isComplete {α : Type u} [uniformSpace : UniformSpace α] {s : Set α} (ht : TotallyBounded s) (hc : IsComplete s) :
                            theorem TotallyBounded.isCompact_of_isClosed {α : Type u} [uniformSpace : UniformSpace α] [CompleteSpace α] {s : Set α} (ht : TotallyBounded s) (hc : IsClosed s) :
                            @[deprecated TotallyBounded.isCompact_of_isClosed (since := "2025-08-30")]
                            theorem isCompact_of_totallyBounded_isClosed {α : Type u} [uniformSpace : UniformSpace α] [CompleteSpace α] {s : Set α} (ht : TotallyBounded s) (hc : IsClosed s) :

                            Alias of TotallyBounded.isCompact_of_isClosed.

                            theorem Filter.TotallyBounded.exists_clusterPt {α : Type u} [uniformSpace : UniformSpace α] [CompleteSpace α] {f : Filter α} [f.NeBot] (hf : f.TotallyBounded) :
                            ∃ (x : α), ClusterPt x f
                            theorem CauchySeq.totallyBounded_range {α : Type u} [uniformSpace : UniformSpace α] {s : ā„• → α} (hs : CauchySeq s) :

                            Every Cauchy sequence over ā„• is totally bounded.

                            def interUnionBalls {α : Type u} (xs : ā„• → α) (u : ā„• → ā„•) (V : ā„• → SetRel α α) :
                            Set α

                            Given a family of points xs n, a family of entourages V n of the diagonal and a family of natural numbers u n, the intersection over n of the V n-neighborhood of xs 1, ..., xs (u n). Designed to be relatively compact when V n tends to the diagonal.

                            Equations
                              Instances For
                                theorem totallyBounded_interUnionBalls {α : Type u} [uniformSpace : UniformSpace α] {p : ā„• → Prop} {U : ā„• → SetRel α α} (H : (uniformity α).HasBasis p U) (xs : ā„• → α) (u : ā„• → ā„•) :
                                theorem isCompact_closure_interUnionBalls {α : Type u} [uniformSpace : UniformSpace α] {p : ā„• → Prop} {U : ā„• → SetRel α α} (H : (uniformity α).HasBasis p U) [CompleteSpace α] (xs : ā„• → α) (u : ā„• → ā„•) :

                                The construction interUnionBalls is used to have a relatively compact set.

                                Sequentially complete space #

                                In this section we prove that a uniform space is complete provided that it is sequentially complete (i.e., any Cauchy sequence converges) and its uniformity filter admits a countable generating set. In particular, this applies to (e)metric spaces, see the files Mathlib/Topology/EMetricSpace/Basic.lean and Mathlib/Topology/MetricSpace/Basic.lean.

                                More precisely, we assume that there is a sequence of entourages U_n such that any other entourage includes one of U_n. Then any Cauchy filter f generates a decreasing sequence of sets s_n ∈ f such that s_n Ɨ s_n āŠ† U_n. Choose a sequence x_n∈s_n. It is easy to show that this is a Cauchy sequence. If this sequence converges to some a, then f ≤ š“ a.

                                def SequentiallyComplete.setSeqAux {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : Cauchy f) {U : ā„• → SetRel α α} (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) (n : ā„•) :
                                { s : Set α // s ∈ f ∧ s Ć—Ė¢ s āŠ† U n }

                                An auxiliary sequence of sets approximating a Cauchy filter.

                                Equations
                                  Instances For
                                    def SequentiallyComplete.setSeq {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : Cauchy f) {U : ā„• → SetRel α α} (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) (n : ā„•) :
                                    Set α

                                    Given a Cauchy filter f and a sequence U of entourages, set_seq provides an antitone sequence of sets s n ∈ f such that s n Ć—Ė¢ s n āŠ† U.

                                    Equations
                                      Instances For
                                        theorem SequentiallyComplete.setSeq_mem {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : Cauchy f) {U : ā„• → SetRel α α} (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) (n : ā„•) :
                                        setSeq hf U_mem n ∈ f
                                        theorem SequentiallyComplete.setSeq_mono {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : Cauchy f) {U : ā„• → SetRel α α} (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) ⦃m n : ℕ⦄ (h : m ≤ n) :
                                        setSeq hf U_mem n āŠ† setSeq hf U_mem m
                                        theorem SequentiallyComplete.setSeq_sub_aux {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : Cauchy f) {U : ā„• → SetRel α α} (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) (n : ā„•) :
                                        setSeq hf U_mem n āŠ† ↑(setSeqAux hf U_mem n)
                                        theorem SequentiallyComplete.setSeq_prod_subset {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : Cauchy f) {U : ā„• → SetRel α α} (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) {N m n : ā„•} (hm : N ≤ m) (hn : N ≤ n) :
                                        setSeq hf U_mem m Ć—Ė¢ setSeq hf U_mem n āŠ† U N
                                        def SequentiallyComplete.seq {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : Cauchy f) {U : ā„• → SetRel α α} (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) (n : ā„•) :
                                        α

                                        A sequence of points such that seq n ∈ setSeq n. Here setSeq is an antitone sequence of sets setSeq n ∈ f with diameters controlled by a given sequence of entourages.

                                        Equations
                                          Instances For
                                            theorem SequentiallyComplete.seq_mem {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : Cauchy f) {U : ā„• → SetRel α α} (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) (n : ā„•) :
                                            seq hf U_mem n ∈ setSeq hf U_mem n
                                            theorem SequentiallyComplete.seq_pair_mem {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : Cauchy f) {U : ā„• → SetRel α α} (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) ⦃N m n : ℕ⦄ (hm : N ≤ m) (hn : N ≤ n) :
                                            (seq hf U_mem m, seq hf U_mem n) ∈ U N
                                            theorem SequentiallyComplete.seq_is_cauchySeq {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : Cauchy f) {U : ā„• → SetRel α α} (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) (U_le : āˆ€ s ∈ uniformity α, ∃ (n : ā„•), U n āŠ† s) :
                                            CauchySeq (seq hf U_mem)
                                            theorem SequentiallyComplete.le_nhds_of_seq_tendsto_nhds {α : Type u} [uniformSpace : UniformSpace α] {f : Filter α} (hf : Cauchy f) {U : ā„• → SetRel α α} (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) (U_le : āˆ€ s ∈ uniformity α, ∃ (n : ā„•), U n āŠ† s) ⦃a : α⦄ (ha : Filter.Tendsto (seq hf U_mem) Filter.atTop (nhds a)) :

                                            If the sequence SequentiallyComplete.seq converges to a, then f ≤ š“ a.

                                            theorem UniformSpace.complete_of_convergent_controlled_sequences {α : Type u} [uniformSpace : UniformSpace α] [(uniformity α).IsCountablyGenerated] (U : ā„• → SetRel α α) (U_mem : āˆ€ (n : ā„•), U n ∈ uniformity α) (HU : āˆ€ (u : ā„• → α), (āˆ€ (N m n : ā„•), N ≤ m → N ≤ n → (u m, u n) ∈ U N) → ∃ (a : α), Filter.Tendsto u Filter.atTop (nhds a)) :

                                            A uniform space is complete provided that (a) its uniformity filter has a countable basis; (b) any sequence satisfying a "controlled" version of the Cauchy condition converges.

                                            theorem UniformSpace.complete_of_cauchySeq_tendsto {α : Type u} [uniformSpace : UniformSpace α] [(uniformity α).IsCountablyGenerated] (H' : āˆ€ (u : ā„• → α), CauchySeq u → ∃ (a : α), Filter.Tendsto u Filter.atTop (nhds a)) :

                                            A sequentially complete uniform space with a countable basis of the uniformity filter is complete.

                                            A separable uniform space with countably generated uniformity filter is second countable: one obtains a countable basis by taking the balls centered at points in a dense subset, and with rational "radii" from a countable open symmetric antitone basis of š“¤ α.

                                            theorem UniformSpace.subset_countable_closure_of_almost_dense_set {α : Type u} [uniformSpace : UniformSpace α] [(uniformity α).IsCountablyGenerated] (s : Set α) (hs : āˆ€ U ∈ uniformity α, ∃ (t : Set α), t.Countable ∧ s āŠ† ā‹ƒ x ∈ t, ball x U) :
                                            ∃ t āŠ† s, t.Countable ∧ s āŠ† closure t
                                            theorem UniformSpace.secondCountable_of_almost_dense_set {α : Type u} [uniformSpace : UniformSpace α] [(uniformity α).IsCountablyGenerated] (hs : āˆ€ U ∈ uniformity α, ∃ (t : Set α), t.Countable ∧ ā‹ƒ x ∈ t, ball x U = Set.univ) :
                                            theorem TotallyBounded.isSeparable {α : Type u} [uniformSpace : UniformSpace α] [(uniformity α).IsCountablyGenerated] {s : Set α} (h : TotallyBounded s) :

                                            A totally bounded set is separable in countably generated uniform spaces. This can be obtained from the more general UniformSpace.subset_countable_closure_of_almost_dense_set.