Documentation

Mathlib.Topology.ContinuousMap.ContinuousMapZero

Continuous maps sending zero to zero #

This is the type of continuous maps from X to R such that (0 : X) ↦ (0 : R) for which we provide the scoped notation C(X, R)₀. We provide this as a dedicated type solely for the non-unital continuous functional calculus, as using various terms of type Ideal C(X, R) were overly burdensome on type class synthesis.

Of course, one could generalize to maps between pointed topological spaces, but that goes beyond the purpose of this type.

structure ContinuousMapZero (X : Type u_1) (R : Type u_2) [Zero X] [Zero R] [TopologicalSpace X] [TopologicalSpace R] extends C(X, R) :
Type (max u_1 u_2)

The type of continuous maps which map zero to zero.

Note that one should never use the structure projection ContinuousMapZero.toContinuousMap and instead favor the coercion (↑) : C(X, R)₀ → C(X, R) available from the instance of ContinuousMapClass. All the instances on C(X, R)₀ from C(X, R) passes through this coercion, not the structure projection. Of course, the two are definitionally equal, but not reducibly so.

Instances For

    The type of continuous maps which map zero to zero.

    Note that one should never use the structure projection ContinuousMapZero.toContinuousMap and instead favor the coercion (↑) : C(X, R)₀ → C(X, R) available from the instance of ContinuousMapClass. All the instances on C(X, R)₀ from C(X, R) passes through this coercion, not the structure projection. Of course, the two are definitionally equal, but not reducibly so.

    Instances For
      @[implicit_reducible]
      instance ContinuousMapZero.instFunLike {X : Type u_1} {R : Type u_3} [Zero X] [Zero R] [TopologicalSpace X] [TopologicalSpace R] :
      @[implicit_reducible]
      def Set.zeroOfFactMem {X : Type u_4} [Zero X] (s : Set X) [Fact (0 s)] :
      Zero s

      not marked as an instance because it would be a bad one in general, but it can be useful when working with ContinuousMapZero and the non-unital continuous functional calculus.

      Instances For
        theorem ContinuousMapZero.ext {X : Type u_1} {R : Type u_3} [Zero X] [Zero R] [TopologicalSpace X] [TopologicalSpace R] {f g : ContinuousMapZero X R} (h : ∀ (x : X), f x = g x) :
        f = g
        theorem ContinuousMapZero.ext_iff {X : Type u_1} {R : Type u_3} [Zero X] [Zero R] [TopologicalSpace X] [TopologicalSpace R] {f g : ContinuousMapZero X R} :
        f = g ∀ (x : X), f x = g x
        @[simp]
        theorem ContinuousMapZero.coe_mk {X : Type u_1} {R : Type u_3} [Zero X] [Zero R] [TopologicalSpace X] [TopologicalSpace R] {f : C(X, R)} {h0 : f 0 = 0} :
        { toContinuousMap := f, map_zero' := h0 } = f
        def ContinuousMapZero.comp {X : Type u_1} {Y : Type u_2} {R : Type u_3} [Zero X] [Zero Y] [Zero R] [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace R] (g : ContinuousMapZero Y R) (f : ContinuousMapZero X Y) :

        Composition of continuous maps which map zero to zero.

        Instances For
          @[simp]
          theorem ContinuousMapZero.comp_apply {X : Type u_1} {Y : Type u_2} {R : Type u_3} [Zero X] [Zero Y] [Zero R] [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace R] (g : ContinuousMapZero Y R) (f : ContinuousMapZero X Y) (x : X) :
          (g.comp f) x = g (f x)
          @[implicit_reducible]
          theorem ContinuousMapZero.le_def {X : Type u_1} {R : Type u_3} [Zero X] [Zero R] [TopologicalSpace X] [TopologicalSpace R] [PartialOrder R] (f g : ContinuousMapZero X R) :
          f g ∀ (x : X), f x g x
          @[implicit_reducible]
          theorem ContinuousMapZero.continuous_precomp {X : Type u_1} {Y : Type u_2} {R : Type u_3} [Zero X] [Zero Y] [Zero R] [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace R] (f : ContinuousMapZero X Y) :
          Continuous fun (g : ContinuousMapZero Y R) => g.comp f
          @[deprecated ContinuousMapZero.continuous_precomp (since := "2026-02-20")]
          theorem ContinuousMapZero.continuous_comp_left {X : Type u_1} {Y : Type u_2} {R : Type u_3} [Zero X] [Zero Y] [Zero R] [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace R] (f : ContinuousMapZero X Y) :
          Continuous fun (g : ContinuousMapZero Y R) => g.comp f

          Alias of ContinuousMapZero.continuous_precomp.

          theorem ContinuousMapZero.postcomp_injective {X : Type u_1} {Y : Type u_2} {R : Type u_3} [Zero X] [Zero Y] [Zero R] [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace R] (g : ContinuousMapZero Y R) (hg : Function.Injective g) :
          Function.Injective g.comp
          theorem ContinuousMapZero.continuous_postcomp {X : Type u_1} {Y : Type u_2} {R : Type u_3} [Zero X] [Zero Y] [Zero R] [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace R] (g : ContinuousMapZero Y R) :
          def ContinuousMapZero.id {R : Type u_3} [Zero R] [TopologicalSpace R] (s : Set R) [Fact (0 s)] :

          The identity function as an element of C(s, R)₀ when 0 ∈ (s : Set R).

          Instances For
            @[simp]
            theorem ContinuousMapZero.id_toFun {R : Type u_3} [Zero R] [TopologicalSpace R] (s : Set R) [Fact (0 s)] (a✝ : s) :
            (ContinuousMapZero.id s) a✝ = a✝
            noncomputable def ContinuousMapZero.mkD {X : Type u_1} {R : Type u_2} [Zero R] [TopologicalSpace X] [TopologicalSpace R] [Zero X] (f : XR) (default : ContinuousMapZero X R) :

            Interpret f : α → β as an element of C(α, β)₀, falling back to the default value default : C(α, β)₀ if f is not continuous or does not map 0 to 0. This is mainly intended to be used for C(α, β)₀-valued integration. For example, if a family of functions f : ι → α → β satisfies that f i is continuous and maps 0 to 0 for almost every i, you can write the C(α, β)₀-valued integral "∫ i, f i" as ∫ i, ContinuousMapZero.mkD (f i) 0.

            Instances For
              theorem ContinuousMapZero.mkD_of_continuous {X : Type u_1} {R : Type u_2} [Zero R] [TopologicalSpace X] [TopologicalSpace R] [Zero X] {f : XR} {g : ContinuousMapZero X R} (hf : Continuous f) (hf₀ : f 0 = 0) :
              mkD f g = { toFun := f, continuous_toFun := hf, map_zero' := hf₀ }
              theorem ContinuousMapZero.mkD_of_not_continuous {X : Type u_1} {R : Type u_2} [Zero R] [TopologicalSpace X] [TopologicalSpace R] [Zero X] {f : XR} {g : ContinuousMapZero X R} (hf : ¬Continuous f) :
              mkD f g = g
              theorem ContinuousMapZero.mkD_of_not_zero {X : Type u_1} {R : Type u_2} [Zero R] [TopologicalSpace X] [TopologicalSpace R] [Zero X] {f : XR} {g : ContinuousMapZero X R} (hf : f 0 0) :
              mkD f g = g
              theorem ContinuousMapZero.mkD_apply_of_continuous {X : Type u_1} {R : Type u_2} [Zero R] [TopologicalSpace X] [TopologicalSpace R] [Zero X] {f : XR} {g : ContinuousMapZero X R} {x : X} (hf : Continuous f) (hf₀ : f 0 = 0) :
              (mkD f g) x = f x
              theorem ContinuousMapZero.mkD_of_continuousOn {X : Type u_1} {R : Type u_2} [Zero R] [TopologicalSpace X] [TopologicalSpace R] {s : Set X} [Zero s] {f : XR} {g : ContinuousMapZero (↑s) R} (hf : ContinuousOn f s) (hf₀ : f 0 = 0) :
              mkD (s.restrict f) g = { toFun := s.restrict f, continuous_toFun := , map_zero' := hf₀ }
              theorem ContinuousMapZero.mkD_of_not_continuousOn {X : Type u_1} {R : Type u_2} [Zero R] [TopologicalSpace X] [TopologicalSpace R] {s : Set X} [Zero s] {f : XR} {g : ContinuousMapZero (↑s) R} (hf : ¬ContinuousOn f s) :
              mkD (s.restrict f) g = g
              theorem ContinuousMapZero.mkD_apply_of_continuousOn {X : Type u_1} {R : Type u_2} [Zero R] [TopologicalSpace X] [TopologicalSpace R] {s : Set X} [Zero s] {f : XR} {g : ContinuousMapZero (↑s) R} {x : s} (hf : ContinuousOn f s) (hf₀ : f 0 = 0) :
              (mkD (s.restrict f) g) x = f x
              theorem ContinuousMapZero.mkD_eq_mkD_of_map_zero {X : Type u_1} {R : Type u_2} [Zero R] [TopologicalSpace X] [TopologicalSpace R] [Zero X] (f : XR) (g : ContinuousMapZero X R) (f_zero : f 0 = 0) :
              (mkD f g) = ContinuousMap.mkD f g

              Link between ContinuousMapZero.mkD and ContinuousMap.mkD.

              theorem ContinuousMapZero.mkD_eq_self {X : Type u_1} {R : Type u_2} [Zero R] [TopologicalSpace X] [TopologicalSpace R] [Zero X] {f g : ContinuousMapZero X R} :
              mkD (⇑f) g = f
              @[implicit_reducible]
              instance ContinuousMapZero.instZero {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [Zero R] :
              @[simp]
              theorem ContinuousMapZero.coe_zero {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [Zero R] :
              0 = 0
              @[implicit_reducible]
              instance ContinuousMapZero.instAdd {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [AddZeroClass R] [ContinuousAdd R] :
              @[simp]
              theorem ContinuousMapZero.coe_add {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [AddZeroClass R] [ContinuousAdd R] (f g : ContinuousMapZero X R) :
              (f + g) = f + g
              @[implicit_reducible]
              instance ContinuousMapZero.instNeg {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [NegZeroClass R] [ContinuousNeg R] :
              @[simp]
              theorem ContinuousMapZero.coe_neg {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [NegZeroClass R] [ContinuousNeg R] (f : ContinuousMapZero X R) :
              ⇑(-f) = -f
              @[implicit_reducible]
              @[simp]
              theorem ContinuousMapZero.coe_sub {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [SubNegZeroMonoid R] [ContinuousSub R] (f g : ContinuousMapZero X R) :
              (f - g) = f - g
              @[implicit_reducible]
              instance ContinuousMapZero.instMul {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [MulZeroClass R] [ContinuousMul R] :
              @[simp]
              theorem ContinuousMapZero.coe_mul {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [MulZeroClass R] [ContinuousMul R] (f g : ContinuousMapZero X R) :
              (f * g) = f * g
              @[implicit_reducible]
              instance ContinuousMapZero.instSMul {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] {M : Type u_3} [Zero R] [SMulZeroClass M R] [ContinuousConstSMul M R] :
              SMul M (ContinuousMapZero X R)
              @[simp]
              theorem ContinuousMapZero.coe_smul {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] {M : Type u_3} [Zero R] [SMulZeroClass M R] [ContinuousConstSMul M R] (m : M) (f : ContinuousMapZero X R) :
              (m f) = m f
              @[implicit_reducible]

              The coercion C(X, R)₀ → C(X, R) bundled as a non-unital star algebra homomorphism.

              Instances For

                The coercion C(X, R)₀ → C(X, R) bundled as a continuous linear map.

                Instances For
                  def ContinuousMapZero.evalCLM {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [CommSemiring R] [IsTopologicalSemiring R] (𝕜 : Type u_3) [Semiring 𝕜] [Module 𝕜 R] [ContinuousConstSMul 𝕜 R] (x : X) :

                  The evaluation at a point, as a continuous linear map from C(X, R)₀ to R.

                  Instances For
                    @[simp]
                    theorem ContinuousMapZero.evalCLM_apply {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [CommSemiring R] [IsTopologicalSemiring R] {𝕜 : Type u_3} [Semiring 𝕜] [Module 𝕜 R] [ContinuousConstSMul 𝕜 R] (x : X) (f : ContinuousMapZero X R) :
                    (evalCLM 𝕜 x) f = f x

                    Coercion to a function as an AddMonoidHom. Similar to ContinuousMap.coeFnAddMonoidHom.

                    Instances For
                      @[simp]
                      theorem ContinuousMapZero.coe_sum {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [TopologicalSpace R] [CommSemiring R] [IsTopologicalSemiring R] {ι : Type u_3} (s : Finset ι) (f : ιContinuousMapZero X R) :
                      (s.sum f) = is, (f i)
                      @[implicit_reducible]
                      instance ContinuousMapZero.instUniformSpace {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [Zero R] [UniformSpace R] :
                      theorem ContinuousMapZero.isUniformEmbedding_comp {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [Zero R] [UniformSpace R] {Y : Type u_3} [UniformSpace Y] [Zero Y] (g : ContinuousMapZero Y R) (hg : IsUniformEmbedding g) :
                      def UniformEquiv.arrowCongrLeft₀ {X : Type u_1} {R : Type u_2} [Zero X] [TopologicalSpace X] [Zero R] [UniformSpace R] {Y : Type u_3} [TopologicalSpace Y] [Zero Y] (f : X ≃ₜ Y) (hf : f 0 = 0) :

                      The uniform equivalence C(X, R)₀ ≃ᵤ C(Y, R)₀ induced by a homeomorphism of the domains sending 0 : X to 0 : Y.

                      Instances For

                        The functor C(·, R)₀ from topological spaces with zero (and ContinuousMapZero maps) to non-unital star algebras.

                        Instances For

                          The functor C(X, ·)₀ from non-unital topological star algebras (with non-unital continuous star homomorphisms) to non-unital star algebras.

                          Instances For
                            @[simp]
                            theorem ContinuousMapZero.nonUnitalStarAlgHom_postcomp_apply (X : Type u_1) {M : Type u_3} {R : Type u_4} {S : Type u_5} [Zero X] [CommSemiring M] [TopologicalSpace X] [TopologicalSpace R] [TopologicalSpace S] [CommSemiring R] [StarRing R] [IsTopologicalSemiring R] [ContinuousStar R] [CommSemiring S] [StarRing S] [IsTopologicalSemiring S] [ContinuousStar S] [Module M R] [Module M S] [ContinuousConstSMul M R] [ContinuousConstSMul M S] (φ : R →⋆ₙₐ[M] S) ( : Continuous φ) (f : ContinuousMapZero X R) :
                            (nonUnitalStarAlgHom_postcomp X φ ) f = { toFun := φ, continuous_toFun := , map_zero' := }.comp f
                            @[implicit_reducible]
                            noncomputable instance ContinuousMapZero.instMetricSpace {α : Type u_1} {R : Type u_3} [TopologicalSpace α] [CompactSpace α] [Zero α] [MetricSpace R] [Zero R] :
                            @[implicit_reducible]
                            noncomputable instance ContinuousMapZero.instNorm {α : Type u_1} {R : Type u_3} [TopologicalSpace α] [CompactSpace α] [Zero α] [NormedAddCommGroup R] :
                            @[implicit_reducible]
                            @[implicit_reducible]
                            @[implicit_reducible]
                            noncomputable instance ContinuousMapZero.instNormedSpaceOfNormedAlgebra {α : Type u_1} {𝕜 : Type u_2} {R : Type u_3} [TopologicalSpace α] [CompactSpace α] [Zero α] [NormedField 𝕜] [NormedCommRing R] [NormedAlgebra 𝕜 R] :