File: Mathlib/Topology/UniformSpace/CompactConvergence.lean

full_name: ContinuousMap.tendsto_iff_forall_compact_tendstoUniformlyOn
code: /-- Compact-open topology on `C(α, β)` agrees with the topology of uniform convergence on compacts:
a family of continuous functions `F i` tends to `f` in the compact-open topology
if and only if the `F i` tends to `f` uniformly on all compact sets. -/
theorem tendsto_iff_forall_compact_tendstoUniformlyOn
    {ι : Type u₃} {p : Filter ι} {F : ι → C(α, β)} {f} :
    Tendsto F p (𝓝 f) ↔ ∀ K, IsCompact K → TendstoUniformlyOn (fun i a => F i a) f p K 
goal: Filter.Tendsto F p (𝓝 f) ↔ ∀ (K : Set α), IsCompact K → TendstoUniformlyOn (fun i a => (F i) a) (⇑f) p K

full_name: ContinuousMap.toUniformOnFunIsCompact
code: /-- Interpret a bundled continuous map as an element of `α →ᵤ[{K | IsCompact K}] β`.

We use this map to induce the `UniformSpace` structure on `C(α, β)`. -/
def toUniformOnFunIsCompact (f : C(α, β)) : α →ᵤ[{K | IsCompact K}] β 
goal: α →ᵤ[{K | IsCompact K}] β

full_name: ContinuousMap.toUniformOnFun_toFun
code: @[simp]
theorem toUniformOnFun_toFun (f : C(α, β)) :
    UniformOnFun.toFun _ f.toUniformOnFunIsCompact = f 
goal: (UniformOnFun.toFun {K | IsCompact K}) f.toUniformOnFunIsCompact = ⇑f

full_name: ContinuousMap.compactConvergenceUniformSpace
code: /-- Uniform space structure on `C(α, β)`.

The uniformity comes from `α →ᵤ[{K | IsCompact K}] β` (i.e., `UniformOnFun α β {K | IsCompact K}`)
which defines topology of uniform convergence on compact sets.
We use `ContinuousMap.tendsto_iff_forall_compact_tendstoUniformlyOn`
to show that the induced topology agrees with the compact-open topology
and replace the topology with `compactOpen` to avoid non-defeq diamonds,
see Note [forgetful inheritance].  -/
instance compactConvergenceUniformSpace : UniformSpace C(α, β) 
goal: UniformSpace C(α, β)

full_name: ContinuousMap.uniformEmbedding_toUniformOnFunIsCompact
code: theorem uniformEmbedding_toUniformOnFunIsCompact :
    UniformEmbedding (toUniformOnFunIsCompact : C(α, β) → α →ᵤ[{K | IsCompact K}] β) 
goal: UniformEmbedding ContinuousMap.toUniformOnFunIsCompact

full_name: Filter.HasBasis.compactConvergenceUniformity
code: theorem _root_.Filter.HasBasis.compactConvergenceUniformity {ι : Type*} {pi : ι → Prop}
    {s : ι → Set (β × β)} (h : (𝓤 β).HasBasis pi s) :
    HasBasis (𝓤 C(α, β)) (fun p : Set α × ι => IsCompact p.1 ∧ pi p.2) fun p =>
      { fg : C(α, β) × C(α, β) | ∀ x ∈ p.1, (fg.1 x, fg.2 x) ∈ s p.2 } 
goal: (𝓤 C(α, β)).HasBasis (fun p => IsCompact p.1 ∧ pi p.2) fun p => {fg | ∀ x ∈ p.1, (fg.1 x, fg.2 x) ∈ s p.2}

full_name: ContinuousMap.hasBasis_compactConvergenceUniformity
code: theorem hasBasis_compactConvergenceUniformity :
    HasBasis (𝓤 C(α, β)) (fun p : Set α × Set (β × β) => IsCompact p.1 ∧ p.2 ∈ 𝓤 β) fun p =>
      { fg : C(α, β) × C(α, β) | ∀ x ∈ p.1, (fg.1 x, fg.2 x) ∈ p.2 } 
goal: (𝓤 C(α, β)).HasBasis (fun p => IsCompact p.1 ∧ p.2 ∈ 𝓤 β) fun p => {fg | ∀ x ∈ p.1, (fg.1 x, fg.2 x) ∈ p.2}

full_name: ContinuousMap.mem_compactConvergence_entourage_iff
code: theorem mem_compactConvergence_entourage_iff (X : Set (C(α, β) × C(α, β))) :
    X ∈ 𝓤 C(α, β) ↔
      ∃ (K : Set α) (V : Set (β × β)), IsCompact K ∧ V ∈ 𝓤 β ∧
        { fg : C(α, β) × C(α, β) | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V } ⊆ X 
goal: X ∈ 𝓤 C(α, β) ↔ ∃ K V, IsCompact K ∧ V ∈ 𝓤 β ∧ {fg | ∀ x ∈ K, (fg.1 x, fg.2 x) ∈ V} ⊆ X

full_name: CompactExhaustion.hasBasis_compactConvergenceUniformity
code: /-- If `K` is a compact exhaustion of `α`
and `V i` bounded by `p i` is a basis of entourages of `β`,
then `fun (n, i) ↦ {(f, g) | ∀ x ∈ K n, (f x, g x) ∈ V i}` bounded by `p i`
is a basis of entourages of `C(α, β)`. -/
theorem _root_.CompactExhaustion.hasBasis_compactConvergenceUniformity {ι : Type*}
    {p : ι → Prop} {V : ι → Set (β × β)} (K : CompactExhaustion α) (hb : (𝓤 β).HasBasis p V) :
    HasBasis (𝓤 C(α, β)) (fun i : ℕ × ι ↦ p i.2) fun i ↦
      {fg | ∀ x ∈ K i.1, (fg.1 x, fg.2 x) ∈ V i.2} 
goal: (𝓤 C(α, β)).HasBasis (fun i => p i.2) fun i => {fg | ∀ x ∈ K i.1, (fg.1 x, fg.2 x) ∈ V i.2}

full_name: CompactExhaustion.hasAntitoneBasis_compactConvergenceUniformity
code: theorem _root_.CompactExhaustion.hasAntitoneBasis_compactConvergenceUniformity
    {V : ℕ → Set (β × β)} (K : CompactExhaustion α) (hb : (𝓤 β).HasAntitoneBasis V) :
    HasAntitoneBasis (𝓤 C(α, β)) fun n ↦ {fg | ∀ x ∈ K n, (fg.1 x, fg.2 x) ∈ V n} 
goal: (𝓤 C(α, β)).HasAntitoneBasis fun n => {fg | ∀ x ∈ K n, (fg.1 x, fg.2 x) ∈ V n}

full_name: ContinuousMap.instIsCountablyGeneratedProdUniformityOfWeaklyLocallyCompactSpaceOfSigmaCompactSpace
code: /-- If `α` is a weakly locally compact σ-compact space
(e.g., a proper pseudometric space or a compact spaces)
and the uniformity on `β` is pseudometrizable,
then the uniformity on `C(α, β)` is pseudometrizable too.
-/
instance [WeaklyLocallyCompactSpace α] [SigmaCompactSpace α] [IsCountablyGenerated (𝓤 β)] :
    IsCountablyGenerated (𝓤 (C(α, β))) 
goal: (𝓤 C(α, β)).IsCountablyGenerated

full_name: ContinuousMap.tendsto_of_tendstoLocallyUniformly
code: /-- Locally uniform convergence implies convergence in the compact-open topology. -/
theorem tendsto_of_tendstoLocallyUniformly (h : TendstoLocallyUniformly (fun i a => F i a) f p) :
    Tendsto F p (𝓝 f) 
goal: Filter.Tendsto F p (𝓝 f)

full_name: ContinuousMap.tendsto_iff_tendstoLocallyUniformly
code: /-- In a weakly locally compact space,
convergence in the compact-open topology is the same as locally uniform convergence.

The right-to-left implication holds in any topological space,
see `ContinuousMap.tendsto_of_tendstoLocallyUniformly`. -/
theorem tendsto_iff_tendstoLocallyUniformly [WeaklyLocallyCompactSpace α] :
    Tendsto F p (𝓝 f) ↔ TendstoLocallyUniformly (fun i a => F i a) f p 
goal: Filter.Tendsto F p (𝓝 f) ↔ TendstoLocallyUniformly (fun i a => (F i) a) (⇑f) p

full_name: ContinuousMap.tendstoLocallyUniformly_of_tendsto
code: @[deprecated tendsto_iff_tendstoLocallyUniformly (since := "2023-09-03")]
theorem tendstoLocallyUniformly_of_tendsto [WeaklyLocallyCompactSpace α] (h : Tendsto F p (𝓝 f)) :
    TendstoLocallyUniformly (fun i a => F i a) f p 
goal: TendstoLocallyUniformly (fun i a => (F i) a) (⇑f) p

full_name: ContinuousMap.uniformContinuous_comp
code: theorem uniformContinuous_comp (g : C(β, δ)) (hg : UniformContinuous g) :
    UniformContinuous (ContinuousMap.comp g : C(α, β) → C(α, δ)) 
goal: UniformContinuous g.comp

full_name: ContinuousMap.uniformInducing_comp
code: theorem uniformInducing_comp (g : C(β, δ)) (hg : UniformInducing g) :
    UniformInducing (ContinuousMap.comp g : C(α, β) → C(α, δ)) 
goal: UniformInducing g.comp

full_name: ContinuousMap.uniformEmbedding_comp
code: theorem uniformEmbedding_comp (g : C(β, δ)) (hg : UniformEmbedding g) :
    UniformEmbedding (ContinuousMap.comp g : C(α, β) → C(α, δ)) 
goal: UniformEmbedding g.comp

full_name: ContinuousMap.uniformContinuous_comp_left
code: theorem uniformContinuous_comp_left (g : C(α, γ)) :
    UniformContinuous (fun f ↦ f.comp g : C(γ, β) → C(α, β)) 
goal: UniformContinuous fun f => f.comp g

full_name: UniformEquiv.arrowCongr
code: /-- Any pair of a homeomorphism `X ≃ₜ Z` and an isomorphism `Y ≃ᵤ T` of uniform spaces gives rise
to an isomorphism `C(X, Y) ≃ᵤ C(Z, T)`. -/
protected def _root_.UniformEquiv.arrowCongr (φ : α ≃ₜ γ) (ψ : β ≃ᵤ δ) :
    C(α, β) ≃ᵤ C(γ, δ) 
goal: C(α, β) ≃ᵤ C(γ, δ)

full_name: ContinuousMap.hasBasis_compactConvergenceUniformity_of_compact
code: theorem hasBasis_compactConvergenceUniformity_of_compact :
    HasBasis (𝓤 C(α, β)) (fun V : Set (β × β) => V ∈ 𝓤 β) fun V =>
      { fg : C(α, β) × C(α, β) | ∀ x, (fg.1 x, fg.2 x) ∈ V } 
goal: (𝓤 C(α, β)).HasBasis (fun V => V ∈ 𝓤 β) fun V => {fg | ∀ (x : α), (fg.1 x, fg.2 x) ∈ V}

full_name: ContinuousMap.tendsto_iff_tendstoUniformly
code: /-- Convergence in the compact-open topology is the same as uniform convergence for sequences of
continuous functions on a compact space. -/
theorem tendsto_iff_tendstoUniformly :
    Tendsto F p (𝓝 f) ↔ TendstoUniformly (fun i a => F i a) f p 
goal: Filter.Tendsto F p (𝓝 f) ↔ TendstoUniformly (fun i a => (F i) a) (⇑f) p

full_name: ContinuousMap.uniformSpace_eq_inf_precomp_of_cover
code: theorem uniformSpace_eq_inf_precomp_of_cover {δ₁ δ₂ : Type*} [TopologicalSpace δ₁]
    [TopologicalSpace δ₂] (φ₁ : C(δ₁, α)) (φ₂ : C(δ₂, α)) (h_proper₁ : IsProperMap φ₁)
    (h_proper₂ : IsProperMap φ₂) (h_cover : range φ₁ ∪ range φ₂ = univ) :
    (inferInstanceAs <| UniformSpace C(α, β)) =
      .comap (comp · φ₁) inferInstance ⊓
      .comap (comp · φ₂) inferInstance 
goal: inferInstanceAs (UniformSpace C(α, β)) =
  UniformSpace.comap (fun x => x.comp φ₁) inferInstance ⊓ UniformSpace.comap (fun x => x.comp φ₂) inferInstance

full_name: ContinuousMap.uniformSpace_eq_iInf_precomp_of_cover
code: theorem uniformSpace_eq_iInf_precomp_of_cover {δ : ι → Type*} [∀ i, TopologicalSpace (δ i)]
    (φ : Π i, C(δ i, α)) (h_proper : ∀ i, IsProperMap (φ i))
    (h_lf : LocallyFinite fun i ↦ range (φ i)) (h_cover : ⋃ i, range (φ i) = univ) :
    (inferInstanceAs <| UniformSpace C(α, β)) = ⨅ i, .comap (comp · (φ i)) inferInstance 
goal: inferInstanceAs (UniformSpace C(α, β)) = ⨅ i, UniformSpace.comap (fun x => x.comp (φ i)) inferInstance