Documentation

Mathlib.Topology.CompactOpen

The compact-open topology #

In this file, we define the compact-open topology on the set of continuous maps between two topological spaces.

Main definitions #

Tags #

compact-open, curry, function space

The compact-open topology on the space of continuous maps C(X, Y).

Equations
  • One or more equations did not get rendered due to their size.
theorem ContinuousMap.compactOpen_eq {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] :
ContinuousMap.compactOpen = TopologicalSpace.generateFrom (Set.image2 (fun (K : Set X) (U : Set Y) => {f : C(X, Y) | Set.MapsTo (⇑f) K U}) {K : Set X | IsCompact K} {t : Set Y | IsOpen t})

Definition of ContinuousMap.compactOpen.

theorem ContinuousMap.isOpen_setOf_mapsTo {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {K : Set X} {U : Set Y} (hK : IsCompact K) (hU : IsOpen U) :
IsOpen {f : C(X, Y) | Set.MapsTo (⇑f) K U}
theorem ContinuousMap.eventually_mapsTo {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {K : Set X} {U : Set Y} {f : C(X, Y)} (hK : IsCompact K) (hU : IsOpen U) (h : Set.MapsTo (⇑f) K U) :
∀ᶠ (g : C(X, Y)) in nhds f, Set.MapsTo (⇑g) K U
theorem ContinuousMap.nhds_compactOpen {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (f : C(X, Y)) :
nhds f = ⨅ (K : Set X), ⨅ (_ : IsCompact K), ⨅ (U : Set Y), ⨅ (_ : IsOpen U), ⨅ (_ : Set.MapsTo (⇑f) K U), Filter.principal {g : C(X, Y) | Set.MapsTo (⇑g) K U}
theorem ContinuousMap.tendsto_nhds_compactOpen {α : Type u_1} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace Y] [TopologicalSpace Z] {l : Filter α} {f : αC(Y, Z)} {g : C(Y, Z)} :
Filter.Tendsto f l (nhds g) ∀ (K : Set Y), IsCompact K∀ (U : Set Z), IsOpen USet.MapsTo (⇑g) K U∀ᶠ (a : α) in l, Set.MapsTo (⇑(f a)) K U
theorem ContinuousMap.continuous_compactOpen {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] {f : XC(Y, Z)} :
Continuous f ∀ (K : Set Y), IsCompact K∀ (U : Set Z), IsOpen UIsOpen {x : X | Set.MapsTo (⇑(f x)) K U}
theorem ContinuousMap.continuous_comp {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (g : C(Y, Z)) :
Continuous g.comp

C(X, ·) is a functor.

theorem ContinuousMap.inducing_comp {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (g : C(Y, Z)) (hg : Inducing g) :
Inducing g.comp

If g : C(Y, Z) is a topology inducing map, then the composition ContinuousMap.comp g : C(X, Y) → C(X, Z) is a topology inducing map too.

theorem ContinuousMap.embedding_comp {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (g : C(Y, Z)) (hg : Embedding g) :
Embedding g.comp

If g : C(Y, Z) is a topological embedding, then the composition ContinuousMap.comp g : C(X, Y) → C(X, Z) is an embedding too.

theorem ContinuousMap.continuous_comp_left {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (f : C(X, Y)) :
Continuous fun (g : C(Y, Z)) => g.comp f

C(·, Z) is a functor.

def Homeomorph.arrowCongr {X : Type u_2} {Y : Type u_3} {Z : Type u_4} {T : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [TopologicalSpace T] (φ : X ≃ₜ Z) (ψ : Y ≃ₜ T) :

Any pair of homeomorphisms X ≃ₜ Z and Y ≃ₜ T gives rise to a homeomorphism C(X, Y) ≃ₜ C(Z, T).

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem ContinuousMap.continuous_comp' {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactPair Y Z] :
    Continuous fun (x : C(X, Y) × C(Y, Z)) => x.2.comp x.1

    Composition is a continuous map from C(X, Y) × C(Y, Z) to C(X, Z), provided that Y is locally compact. This is Prop. 9 of Chap. X, §3, №. 4 of Bourbaki's Topologie Générale.

    theorem Filter.Tendsto.compCM {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactPair Y Z] {α : Type u_6} {l : Filter α} {g : αC(Y, Z)} {g₀ : C(Y, Z)} {f : αC(X, Y)} {f₀ : C(X, Y)} (hg : Filter.Tendsto g l (nhds g₀)) (hf : Filter.Tendsto f l (nhds f₀)) :
    Filter.Tendsto (fun (a : α) => (g a).comp (f a)) l (nhds (g₀.comp f₀))
    theorem ContinuousAt.compCM {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactPair Y Z] {X' : Type u_6} [TopologicalSpace X'] {a : X'} {g : X'C(Y, Z)} {f : X'C(X, Y)} (hg : ContinuousAt g a) (hf : ContinuousAt f a) :
    ContinuousAt (fun (x : X') => (g x).comp (f x)) a
    theorem ContinuousWithinAt.compCM {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactPair Y Z] {X' : Type u_6} [TopologicalSpace X'] {a : X'} {g : X'C(Y, Z)} {f : X'C(X, Y)} {s : Set X'} (hg : ContinuousWithinAt g s a) (hf : ContinuousWithinAt f s a) :
    ContinuousWithinAt (fun (x : X') => (g x).comp (f x)) s a
    theorem ContinuousOn.compCM {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactPair Y Z] {X' : Type u_6} [TopologicalSpace X'] {g : X'C(Y, Z)} {f : X'C(X, Y)} {s : Set X'} (hg : ContinuousOn g s) (hf : ContinuousOn f s) :
    ContinuousOn (fun (x : X') => (g x).comp (f x)) s
    theorem Continuous.compCM {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactPair Y Z] {X' : Type u_6} [TopologicalSpace X'] {g : X'C(Y, Z)} {f : X'C(X, Y)} (hg : Continuous g) (hf : Continuous f) :
    Continuous fun (x : X') => (g x).comp (f x)
    @[deprecated Continuous.compCM]
    theorem ContinuousMap.continuous.comp' {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactPair Y Z] {X' : Type u_6} [TopologicalSpace X'] {g : X'C(Y, Z)} {f : X'C(X, Y)} (hf : Continuous f) (hg : Continuous g) :
    Continuous fun (x : X') => (g x).comp (f x)
    theorem ContinuousMap.continuous_eval {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] [LocallyCompactPair X Y] :
    Continuous fun (p : C(X, Y) × X) => p.1 p.2

    The evaluation map C(X, Y) × X → Y is continuous if X, Y is a locally compact pair of spaces.

    theorem ContinuousMap.continuous_eval_const {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (a : X) :
    Continuous fun (f : C(X, Y)) => f a

    Evaluation of a continuous map f at a point x is continuous in f.

    Porting note: merged continuous_eval_const with continuous_eval_const' removing unneeded assumptions.

    theorem ContinuousMap.continuous_coe {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] :
    Continuous DFunLike.coe

    Coercion from C(X, Y) with compact-open topology to X → Y with pointwise convergence topology is a continuous map.

    Porting note: merged continuous_coe with continuous_coe' removing unneeded assumptions.

    theorem ContinuousMap.isClosed_setOf_mapsTo {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {t : Set Y} (ht : IsClosed t) (s : Set X) :
    IsClosed {f : C(X, Y) | Set.MapsTo (⇑f) s t}
    theorem ContinuousMap.isClopen_setOf_mapsTo {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {K : Set X} {U : Set Y} (hK : IsCompact K) (hU : IsClopen U) :
    IsClopen {f : C(X, Y) | Set.MapsTo (⇑f) K U}
    theorem ContinuousMap.specializes_coe {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {f : C(X, Y)} {g : C(X, Y)} :
    f g f g
    theorem ContinuousMap.inseparable_coe {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {f : C(X, Y)} {g : C(X, Y)} :
    Equations
    • =
    Equations
    • =
    Equations
    • =
    Equations
    • =
    Equations
    • =
    Equations
    • =

    For any subset s of X, the restriction of continuous functions to s is continuous as a function from C(X, Y) to C(s, Y) with their respective compact-open topologies.

    theorem ContinuousMap.compactOpen_le_induced {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (s : Set X) :
    ContinuousMap.compactOpen TopologicalSpace.induced (ContinuousMap.restrict s) ContinuousMap.compactOpen
    theorem ContinuousMap.compactOpen_eq_iInf_induced {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] :
    ContinuousMap.compactOpen = ⨅ (K : Set X), ⨅ (_ : IsCompact K), TopologicalSpace.induced (ContinuousMap.restrict K) ContinuousMap.compactOpen

    The compact-open topology on C(X, Y) is equal to the infimum of the compact-open topologies on C(s, Y) for s a compact subset of X. The key point of the proof is that for every compact set K, the universal set Set.univ : Set K is a compact set as well.

    @[deprecated ContinuousMap.compactOpen_eq_iInf_induced]
    theorem ContinuousMap.compactOpen_eq_sInf_induced {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] :
    ContinuousMap.compactOpen = ⨅ (K : Set X), ⨅ (_ : IsCompact K), TopologicalSpace.induced (ContinuousMap.restrict K) ContinuousMap.compactOpen

    Alias of ContinuousMap.compactOpen_eq_iInf_induced.


    The compact-open topology on C(X, Y) is equal to the infimum of the compact-open topologies on C(s, Y) for s a compact subset of X. The key point of the proof is that for every compact set K, the universal set Set.univ : Set K is a compact set as well.

    @[deprecated ContinuousMap.nhds_compactOpen_eq_iInf_nhds_induced]

    Alias of ContinuousMap.nhds_compactOpen_eq_iInf_nhds_induced.

    theorem ContinuousMap.tendsto_compactOpen_restrict {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {ι : Type u_6} {l : Filter ι} {F : ιC(X, Y)} {f : C(X, Y)} (hFf : Filter.Tendsto F l (nhds f)) (s : Set X) :
    theorem ContinuousMap.tendsto_compactOpen_iff_forall {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {ι : Type u_6} {l : Filter ι} (F : ιC(X, Y)) (f : C(X, Y)) :
    Filter.Tendsto F l (nhds f) ∀ (K : Set X), IsCompact KFilter.Tendsto (fun (i : ι) => ContinuousMap.restrict K (F i)) l (nhds (ContinuousMap.restrict K f))
    theorem ContinuousMap.exists_tendsto_compactOpen_iff_forall {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] [WeaklyLocallyCompactSpace X] [T2Space Y] {ι : Type u_6} {l : Filter ι} [l.NeBot] (F : ιC(X, Y)) :
    (∃ (f : C(X, Y)), Filter.Tendsto F l (nhds f)) ∀ (s : Set X), IsCompact s∃ (f : C(s, Y)), Filter.Tendsto (fun (i : ι) => ContinuousMap.restrict s (F i)) l (nhds f)

    A family F of functions in C(X, Y) converges in the compact-open topology, if and only if it converges in the compact-open topology on each compact subset of X.

    @[simp]
    theorem ContinuousMap.coev_apply (X : Type u_2) (Y : Type u_3) [TopologicalSpace X] [TopologicalSpace Y] (b : Y) :
    def ContinuousMap.coev (X : Type u_2) (Y : Type u_3) [TopologicalSpace X] [TopologicalSpace Y] (b : Y) :
    C(X, Y × X)

    The coevaluation map Y → C(X, Y × X) sending a point x : Y to the continuous function on X sending y to (x, y).

    Equations
    Instances For
      theorem ContinuousMap.image_coev {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {y : Y} (s : Set X) :
      (ContinuousMap.coev X Y y) '' s = {y} ×ˢ s

      The coevaluation map Y → C(X, Y × X) is continuous (always).

      def ContinuousMap.curry {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (f : C(X × Y, Z)) :

      The curried form of a continuous map α × β → γ as a continuous map α → C(β, γ). If a × β is locally compact, this is continuous. If α and β are both locally compact, then this is a homeomorphism, see Homeomorph.curry.

      Equations
      • f.curry = { toFun := fun (a : X) => { toFun := Function.curry (⇑f) a, continuous_toFun := }, continuous_toFun := }
      Instances For
        @[simp]
        theorem ContinuousMap.curry_apply {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (f : C(X × Y, Z)) (a : X) (b : Y) :
        (f.curry a) b = f (a, b)
        @[deprecated ContinuousMap.curry]
        def ContinuousMap.curry' {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (f : C(X × Y, Z)) (a : X) :
        C(Y, Z)

        Auxiliary definition, see ContinuousMap.curry and Homeomorph.curry.

        Equations
        • f.curry' a = f.curry a
        Instances For
          @[deprecated ContinuousMap.curry]
          theorem ContinuousMap.continuous_curry' {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (f : C(X × Y, Z)) :
          Continuous f.curry'

          If a map α × β → γ is continuous, then its curried form α → C(β, γ) is continuous.

          theorem ContinuousMap.continuous_of_continuous_uncurry {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (f : XC(Y, Z)) (h : Continuous (Function.uncurry fun (x : X) (y : Y) => (f x) y)) :

          To show continuity of a map α → C(β, γ), it suffices to show that its uncurried form α × β → γ is continuous.

          theorem ContinuousMap.continuous_curry {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactSpace (X × Y)] :
          Continuous ContinuousMap.curry

          The currying process is a continuous map between function spaces.

          theorem ContinuousMap.continuous_uncurry_of_continuous {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactSpace Y] (f : C(X, C(Y, Z))) :
          Continuous (Function.uncurry fun (x : X) (y : Y) => (f x) y)

          The uncurried form of a continuous map X → C(Y, Z) is a continuous map X × Y → Z.

          @[simp]
          theorem ContinuousMap.uncurry_apply {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactSpace Y] (f : C(X, C(Y, Z))) :
          ∀ (a : X × Y), f.uncurry a = Function.uncurry (fun (x : X) (y : Y) => (f x) y) a
          def ContinuousMap.uncurry {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactSpace Y] (f : C(X, C(Y, Z))) :
          C(X × Y, Z)

          The uncurried form of a continuous map X → C(Y, Z) as a continuous map X × Y → Z (if Y is locally compact). If X is also locally compact, then this is a homeomorphism between the two function spaces, see Homeomorph.curry.

          Equations
          • f.uncurry = { toFun := Function.uncurry fun (x : X) (y : Y) => (f x) y, continuous_toFun := }
          Instances For

            The uncurrying process is a continuous map between function spaces.

            The family of constant maps: Y → C(X, Y) as a continuous map.

            Equations
            • ContinuousMap.const' = ContinuousMap.fst.curry
            Instances For
              @[simp]
              theorem ContinuousMap.coe_const' {X : Type u_2} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] :
              ContinuousMap.const' = ContinuousMap.const X

              Currying as a homeomorphism between the function spaces C(X × Y, Z) and C(X, C(Y, Z)).

              Equations
              • Homeomorph.curry = { toFun := ContinuousMap.curry, invFun := ContinuousMap.uncurry, left_inv := , right_inv := , continuous_toFun := , continuous_invFun := }
              Instances For

                If X has a single element, then Y is homeomorphic to C(X, Y).

                Equations
                • Homeomorph.continuousMapOfUnique = { toFun := ContinuousMap.const X, invFun := fun (f : C(X, Y)) => f default, left_inv := , right_inv := , continuous_toFun := , continuous_invFun := }
                Instances For
                  @[simp]
                  theorem Homeomorph.continuousMapOfUnique_apply {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] [Unique X] (y : Y) (x : X) :
                  (Homeomorph.continuousMapOfUnique y) x = y
                  @[simp]
                  theorem Homeomorph.continuousMapOfUnique_symm_apply {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] [Unique X] (f : C(X, Y)) :
                  Homeomorph.continuousMapOfUnique.symm f = f default
                  theorem QuotientMap.continuous_lift_prod_left {X₀ : Type u_1} {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X₀] [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactSpace Y] {f : X₀X} (hf : QuotientMap f) {g : X × YZ} (hg : Continuous fun (p : X₀ × Y) => g (f p.1, p.2)) :
                  theorem QuotientMap.continuous_lift_prod_right {X₀ : Type u_1} {X : Type u_2} {Y : Type u_3} {Z : Type u_4} [TopologicalSpace X₀] [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [LocallyCompactSpace Y] {f : X₀X} (hf : QuotientMap f) {g : Y × XZ} (hg : Continuous fun (p : Y × X₀) => g (p.1, f p.2)) :