File: Mathlib/Topology/ContinuousFunction/ContinuousMapZero.lean

full_name: ContinuousMapZero.map_zero'
code: /-- 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. -/
structure ContinuousMapZero (X R : Type*) [Zero X] [Zero R] [TopologicalSpace X]
    [TopologicalSpace R] extends C(X, R) where
  map_zero' : toContinuousMap 0 = 0
goal: self.toContinuousMap 0 = 0

full_name: ContinuousMapZero
code: /-- 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. -/
structure ContinuousMapZero (X R : Type*) [Zero X] [Zero R] [TopologicalSpace X]
    [TopologicalSpace R] extends C(X, R) where
  map_zero' : toContinuousMap 0 = 0
goal: Type (max u_1 u_2)

full_name: ContinuousMapZero._aux_Mathlib_Topology_ContinuousFunction_ContinuousMapZero___unexpand_ContinuousMapZero_1
code: @[inherit_doc]
scoped notation "C(" X ", " R ")₀" => ContinuousMapZero X R
goal: Lean.PrettyPrinter.Unexpander

full_name: ContinuousMapZero.«_aux_Mathlib_Topology_ContinuousFunction_ContinuousMapZero___macroRules_ContinuousMapZero_termC(_,_)₀_1»
code: @[inherit_doc]
scoped notation "C(" X ", " R ")₀" => ContinuousMapZero X R
goal: Lean.Macro

full_name: ContinuousMapZero.instFunLike
code: instance instFunLike : FunLike C(X, R)₀ X R 
goal: FunLike (ContinuousMapZero X R) X R

full_name: ContinuousMapZero.instContinuousMapClass
code: instance instContinuousMapClass : ContinuousMapClass C(X, R)₀ X R 
goal: ContinuousMapClass (ContinuousMapZero X R) X R

full_name: ContinuousMapZero.instZeroHomClass
code: instance instZeroHomClass : ZeroHomClass C(X, R)₀ X R 
goal: ZeroHomClass (ContinuousMapZero X R) X R

full_name: ContinuousMapZero.ext
code: @[ext]
lemma ext {f g : C(X, R)₀} (h : ∀ x, f x = g x) : f = g 
goal: f = g

full_name: ContinuousMapZero.coe_mk
code: @[simp]
lemma coe_mk {f : C(X, R)} {h0 : f 0 = 0} : ⇑(mk f h0) = f 
goal: ⇑{ toContinuousMap := f, map_zero' := h0 } = ⇑f

full_name: ContinuousMapZero.toContinuousMap_injective
code: lemma toContinuousMap_injective [Zero R] : Injective ((↑) : C(X, R)₀ → C(X, R)) 
goal: Function.Injective toContinuousMap

full_name: ContinuousMapZero.range_toContinuousMap
code: lemma range_toContinuousMap : range ((↑) : C(X, R)₀ → C(X, R)) = {f : C(X, R) | f 0 = 0} 
goal: Set.range toContinuousMap = {f | f 0 = 0}

full_name: ContinuousMapZero.comp
code: /-- Composition of continuous maps which map zero to zero. -/
def comp (g : C(Y, R)₀) (f : C(X, Y)₀) : C(X, R)₀ 
goal: ContinuousMapZero X R

full_name: ContinuousMapZero.comp_apply
code: @[simp]
lemma comp_apply (g : C(Y, R)₀) (f : C(X, Y)₀) (x : X) : g.comp f x = g (f x) 
goal: (g.comp f) x = g (f x)

full_name: ContinuousMapZero.instPartialOrder
code: instance instPartialOrder [PartialOrder R] : PartialOrder C(X, R)₀ 
goal: PartialOrder (ContinuousMapZero X R)

full_name: ContinuousMapZero.le_def
code: lemma le_def [PartialOrder R] (f g : C(X, R)₀) : f ≤ g ↔ ∀ x, f x ≤ g x 
goal: f ≤ g ↔ ∀ (x : X), f x ≤ g x

full_name: ContinuousMapZero.instTopologicalSpace
code: protected instance instTopologicalSpace : TopologicalSpace C(X, R)₀ 
goal: TopologicalSpace (ContinuousMapZero X R)

full_name: ContinuousMapZero.embedding_toContinuousMap
code: lemma embedding_toContinuousMap : Embedding ((↑) : C(X, R)₀ → C(X, R)) 
goal: Embedding toContinuousMap

full_name: ContinuousMapZero.instT0Space
code: instance [T0Space R] : T0Space C(X, R)₀ 
goal: T0Space (ContinuousMapZero X R)

full_name: ContinuousMapZero.instT1Space
code: instance [T1Space R] : T1Space C(X, R)₀ 
goal: T1Space (ContinuousMapZero X R)

full_name: ContinuousMapZero.instT2Space
code: instance [T2Space R] : T2Space C(X, R)₀ 
goal: T2Space (ContinuousMapZero X R)

full_name: ContinuousMapZero.closedEmbedding_toContinuousMap
code: lemma closedEmbedding_toContinuousMap [T1Space R] :
    ClosedEmbedding ((↑) : C(X, R)₀ → C(X, R)) 
goal: ClosedEmbedding toContinuousMap

full_name: ContinuousMapZero.id
code: /-- The identity function as an element of `C(s, R)₀` when `0 ∈ (s : Set R)`. -/
@[simps!]
protected def id {s : Set R} [Zero s] (h0 : ((0 : s) : R) = 0) : C(s, R)₀ 
goal: ContinuousMapZero (↑s) R

full_name: ContinuousMapZero.id_toFun
code: /-- The identity function as an element of `C(s, R)₀` when `0 ∈ (s : Set R)`. -/
@[simps!]
protected def id {s : Set R} [Zero s] (h0 : ((0 : s) : R) = 0) : C(s, R)₀ 
goal: ∀ (a : ↑s), (ContinuousMapZero.id h0) a = ↑a

full_name: ContinuousMapZero.toContinuousMap_id
code: @[simp]
lemma toContinuousMap_id {s : Set R} [Zero s] (h0 : ((0 : s) : R) = 0) :
    (ContinuousMapZero.id h0 : C(s, R)) = .restrict s (.id R) 
goal: ↑(ContinuousMapZero.id h0) = ContinuousMap.restrict s (ContinuousMap.id R)

full_name: ContinuousMapZero.instZero
code: instance instZero [Zero R] : Zero C(X, R)₀ 
goal: Zero (ContinuousMapZero X R)

full_name: ContinuousMapZero.coe_zero
code: @[simp] lemma coe_zero [Zero R] : ⇑(0 : C(X, R)₀) = 0 
goal: ⇑0 = 0

full_name: ContinuousMapZero.instAdd
code: instance instAdd [AddZeroClass R] [ContinuousAdd R] : Add C(X, R)₀ 
goal: Add (ContinuousMapZero X R)

full_name: ContinuousMapZero.coe_add
code: @[simp] lemma coe_add [AddZeroClass R] [ContinuousAdd R] (f g : C(X, R)₀) : ⇑(f + g) = f + g 
goal: ⇑(f + g) = ⇑f + ⇑g

full_name: ContinuousMapZero.instMul
code: instance instMul [MulZeroClass R] [ContinuousMul R] : Mul C(X, R)₀ 
goal: Mul (ContinuousMapZero X R)

full_name: ContinuousMapZero.coe_mul
code: @[simp] lemma coe_mul [MulZeroClass R] [ContinuousMul R] (f g : C(X, R)₀) : ⇑(f * g) = f * g 
goal: ⇑(f * g) = ⇑f * ⇑g

full_name: ContinuousMapZero.instSMul
code: instance instSMul {M : Type*} [Zero R] [SMulZeroClass M R] [ContinuousConstSMul M R] :
    SMul M C(X, R)₀ 
goal: SMul M (ContinuousMapZero X R)

full_name: ContinuousMapZero.coe_smul
code: @[simp] lemma coe_smul {M : Type*} [Zero R] [SMulZeroClass M R] [ContinuousConstSMul M R]
    (m : M) (f : C(X, R)₀) : ⇑(m • f) = m • f 
goal: ⇑(m • f) = m • ⇑f

full_name: ContinuousMapZero.instNonUnitalCommSemiring
code: instance instNonUnitalCommSemiring : NonUnitalCommSemiring C(X, R)₀ 
goal: NonUnitalCommSemiring (ContinuousMapZero X R)

full_name: ContinuousMapZero.instModule
code: instance instModule {M : Type*} [Semiring M] [Module M R] [ContinuousConstSMul M R] :
    Module M C(X, R)₀ 
goal: Module M (ContinuousMapZero X R)

full_name: ContinuousMapZero.instSMulCommClass
code: instance instSMulCommClass {M N : Type*} [SMulZeroClass M R] [ContinuousConstSMul M R]
    [SMulZeroClass N R] [ContinuousConstSMul N R] [SMulCommClass M N R] :
    SMulCommClass M N C(X, R)₀ 
goal: SMulCommClass M N (ContinuousMapZero X R)

full_name: ContinuousMapZero.instSMulCommClass'
code: instance instSMulCommClass' {M : Type*} [SMulZeroClass M R] [SMulCommClass M R R]
    [ContinuousConstSMul M R] : SMulCommClass M C(X, R)₀ C(X, R)₀ 
goal: SMulCommClass M (ContinuousMapZero X R) (ContinuousMapZero X R)

full_name: ContinuousMapZero.instIsScalarTower
code: instance instIsScalarTower {M N : Type*} [SMulZeroClass M R] [ContinuousConstSMul M R]
    [SMulZeroClass N R] [ContinuousConstSMul N R] [SMul M N] [IsScalarTower M N R] :
    IsScalarTower M N C(X, R)₀ 
goal: IsScalarTower M N (ContinuousMapZero X R)

full_name: ContinuousMapZero.instIsScalarTower'
code: instance instIsScalarTower' {M : Type*} [SMulZeroClass M R] [IsScalarTower M R R]
    [ContinuousConstSMul M R] : IsScalarTower M C(X, R)₀ C(X, R)₀ 
goal: IsScalarTower M (ContinuousMapZero X R) (ContinuousMapZero X R)

full_name: ContinuousMapZero.instStarRing
code: instance instStarRing [StarRing R] [ContinuousStar R] : StarRing C(X, R)₀ 
goal: StarRing (ContinuousMapZero X R)

full_name: ContinuousMapZero.instStarModule
code: instance instStarModule [StarRing R] {M : Type*} [SMulZeroClass M R] [ContinuousConstSMul M R]
    [Star M] [StarModule M R] [ContinuousStar R] : StarModule M C(X, R)₀ 
goal: StarModule M (ContinuousMapZero X R)

full_name: ContinuousMapZero.coe_star
code: @[simp] lemma coe_star [StarRing R] [ContinuousStar R] (f : C(X, R)₀) : ⇑(star f) = star ⇑f 
goal: ⇑(star f) = star ⇑f

full_name: ContinuousMapZero.instTrivialStar
code: instance [StarRing R] [ContinuousStar R] [TrivialStar R] : TrivialStar C(X, R)₀ 
goal: TrivialStar (ContinuousMapZero X R)

full_name: ContinuousMapZero.instCanLift
code: instance instCanLift : CanLift C(X, R) C(X, R)₀ (↑) (fun f ↦ f 0 = 0) 
goal: CanLift C(X, R) (ContinuousMapZero X R) toContinuousMap fun f => f 0 = 0

full_name: ContinuousMapZero.toContinuousMapHom_apply
code: /-- The coercion `C(X, R)₀ → C(X, R)` bundled as a non-unital star algebra homomorphism. -/
@[simps]
def toContinuousMapHom [StarRing R] [ContinuousStar R] : C(X, R)₀ →⋆ₙₐ[R] C(X, R) 
goal: ContinuousMapZero.toContinuousMapHom f = ↑f

full_name: ContinuousMapZero.toContinuousMapHom
code: /-- The coercion `C(X, R)₀ → C(X, R)` bundled as a non-unital star algebra homomorphism. -/
@[simps]
def toContinuousMapHom [StarRing R] [ContinuousStar R] : C(X, R)₀ →⋆ₙₐ[R] C(X, R) 
goal: ContinuousMapZero X R →⋆ₙₐ[R] C(X, R)

full_name: ContinuousMapZero.coe_toContinuousMapHom
code: lemma coe_toContinuousMapHom [StarRing R] [ContinuousStar R] :
    ⇑(toContinuousMapHom (X := X) (R := R)) = (↑) 
goal: ⇑ContinuousMapZero.toContinuousMapHom = toContinuousMap

full_name: ContinuousMapZero.coeFnAddMonoidHom
code: /-- Coercion to a function as an `AddMonoidHom`. Similar to `ContinuousMap.coeFnAddMonoidHom`. -/
def coeFnAddMonoidHom : C(X, R)₀ →+ X → R 
goal: ContinuousMapZero X R →+ X → R

full_name: ContinuousMapZero.coe_sum
code: @[simp] lemma coe_sum {ι : Type*} (s : Finset ι)
    (f : ι → C(X, R)₀) : ⇑(s.sum f) = s.sum (fun i => ⇑(f i)) 
goal: ⇑(s.sum f) = ∑ i ∈ s, ⇑(f i)

full_name: ContinuousMapZero.instSub
code: instance instSub : Sub C(X, R)₀ 
goal: Sub (ContinuousMapZero X R)

full_name: ContinuousMapZero.instNeg
code: instance instNeg : Neg C(X, R)₀ 
goal: Neg (ContinuousMapZero X R)

full_name: ContinuousMapZero.instNonUnitalCommRing
code: instance instNonUnitalCommRing : NonUnitalCommRing C(X, R)₀ 
goal: NonUnitalCommRing (ContinuousMapZero X R)

full_name: ContinuousMapZero.coe_neg
code: @[simp]
lemma coe_neg (f : C(X, R)₀) : ⇑(-f) = -⇑f 
goal: ⇑(-f) = -⇑f

full_name: ContinuousMapZero.instContinuousNeg
code: instance : ContinuousNeg C(X, R)₀ 
goal: ContinuousNeg (ContinuousMapZero X R)

full_name: ContinuousMapZero.instUniformSpace
code: protected instance instUniformSpace : UniformSpace C(X, R)₀ 
goal: UniformSpace (ContinuousMapZero X R)

full_name: ContinuousMapZero.uniformEmbedding_toContinuousMap
code: lemma uniformEmbedding_toContinuousMap :
    UniformEmbedding ((↑) : C(X, R)₀ → C(X, R)) 
goal: UniformEmbedding toContinuousMap

full_name: ContinuousMapZero.instCompleteSpaceOfT1SpaceOfContinuousMap
code: instance [T1Space R] [CompleteSpace C(X, R)] : CompleteSpace C(X, R)₀ 
goal: CompleteSpace (ContinuousMapZero X R)

full_name: ContinuousMapZero.uniformEmbedding_comp
code: lemma uniformEmbedding_comp {Y : Type*} [UniformSpace Y] [Zero Y] (g : C(Y, R)₀)
    (hg : UniformEmbedding g) : UniformEmbedding (g.comp · : C(X, Y)₀ → C(X, R)₀) 
goal: UniformEmbedding fun x => g.comp x

full_name: UniformEquiv.arrowCongrLeft₀
code: /-- The uniform equivalence `C(X, R)₀ ≃ᵤ C(Y, R)₀` induced by a homeomorphism of the domains
sending `0 : X` to `0 : Y`. -/
def _root_.UniformEquiv.arrowCongrLeft₀ {Y : Type*} [TopologicalSpace Y] [Zero Y] (f : X ≃ₜ Y)
    (hf : f 0 = 0) : C(X, R)₀ ≃ᵤ C(Y, R)₀ 
goal: ContinuousMapZero X R ≃ᵤ ContinuousMapZero Y R

full_name: ContinuousMapZero.nonUnitalStarAlgHom_precomp
code: /-- The functor `C(·, R)₀` from topological spaces with zero (and `ContinuousMapZero` maps) to
non-unital star algebras. -/
@[simps]
def nonUnitalStarAlgHom_precomp (f : C(X, Y)₀) : C(Y, R)₀ →⋆ₙₐ[R] C(X, R)₀ 
goal: ContinuousMapZero Y R →⋆ₙₐ[R] ContinuousMapZero X R

full_name: ContinuousMapZero.nonUnitalStarAlgHom_precomp_apply
code: /-- The functor `C(·, R)₀` from topological spaces with zero (and `ContinuousMapZero` maps) to
non-unital star algebras. -/
@[simps]
def nonUnitalStarAlgHom_precomp (f : C(X, Y)₀) : C(Y, R)₀ →⋆ₙₐ[R] C(X, R)₀ 
goal: (ContinuousMapZero.nonUnitalStarAlgHom_precomp R f) g = g.comp f

full_name: ContinuousMapZero.nonUnitalStarAlgHom_postcomp
code: /-- The functor `C(X, ·)₀` from non-unital topological star algebras (with non-unital continuous
star homomorphisms) to non-unital star algebras. -/
@[simps apply]
def nonUnitalStarAlgHom_postcomp (φ : R →⋆ₙₐ[M] S) (hφ : Continuous φ) :
    C(X, R)₀ →⋆ₙₐ[M] C(X, S)₀ 
goal: ContinuousMapZero X R →⋆ₙₐ[M] ContinuousMapZero X S

full_name: ContinuousMapZero.nonUnitalStarAlgHom_postcomp_apply
code: /-- The functor `C(X, ·)₀` from non-unital topological star algebras (with non-unital continuous
star homomorphisms) to non-unital star algebras. -/
@[simps apply]
def nonUnitalStarAlgHom_postcomp (φ : R →⋆ₙₐ[M] S) (hφ : Continuous φ) :
    C(X, R)₀ →⋆ₙₐ[M] C(X, S)₀ 
goal: (ContinuousMapZero.nonUnitalStarAlgHom_postcomp X φ hφ) f =
  { toFun := ⇑φ, continuous_toFun := hφ, map_zero' := ⋯ }.comp f