# Topology on TrivSqZeroExt R M#

The type TrivSqZeroExt R M inherits the topology from R × M.

Note that this is not the topology induced by the seminorm on the dual numbers suggested by this Math.SE answer, which instead induces the topology pulled back through the projection map TrivSqZeroExt.fst : tsze R M → R. Obviously, that topology is not Hausdorff and using it would result in exp converging to more than one value.

## Main results #

• TrivSqZeroExt.topologicalRing: the ring operations are continuous
instance TrivSqZeroExt.instTopologicalSpace {R : Type u_3} {M : Type u_4} [] [] :
Equations
instance TrivSqZeroExt.instT2Space {R : Type u_3} {M : Type u_4} [] [] [] [] :
Equations
• =
theorem TrivSqZeroExt.nhds_def {R : Type u_3} {M : Type u_4} [] [] (x : ) :
nhds x = (nhds x.fst).prod (nhds x.snd)
theorem TrivSqZeroExt.nhds_inl {R : Type u_3} {M : Type u_4} [] [] [Zero M] (x : R) :
= (nhds x).prod (nhds 0)
theorem TrivSqZeroExt.nhds_inr {R : Type u_3} {M : Type u_4} [] [] [Zero R] (m : M) :
= (nhds 0).prod (nhds m)
theorem TrivSqZeroExt.continuous_fst {R : Type u_3} {M : Type u_4} [] [] :
Continuous TrivSqZeroExt.fst
theorem TrivSqZeroExt.continuous_snd {R : Type u_3} {M : Type u_4} [] [] :
Continuous TrivSqZeroExt.snd
theorem TrivSqZeroExt.continuous_inl {R : Type u_3} {M : Type u_4} [] [] [Zero M] :
Continuous TrivSqZeroExt.inl
theorem TrivSqZeroExt.continuous_inr {R : Type u_3} {M : Type u_4} [] [] [Zero R] :
Continuous TrivSqZeroExt.inr
theorem TrivSqZeroExt.embedding_inl {R : Type u_3} {M : Type u_4} [] [] [Zero M] :
Embedding TrivSqZeroExt.inl
theorem TrivSqZeroExt.embedding_inr {R : Type u_3} {M : Type u_4} [] [] [Zero R] :
Embedding TrivSqZeroExt.inr
@[simp]
theorem TrivSqZeroExt.fstCLM_toFun (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] (x : ) :
() x = x.fst
@[simp]
theorem TrivSqZeroExt.fstCLM_apply (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] (x : ) :
() x = x.fst
def TrivSqZeroExt.fstCLM (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] :
→L[R] R

TrivSqZeroExt.fst as a continuous linear map.

Equations
• = let __src := ; { toFun := TrivSqZeroExt.fst, map_add' := , map_smul' := , cont := }
Instances For
@[simp]
theorem TrivSqZeroExt.sndCLM_apply (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] (x : ) :
() x = x.snd
@[simp]
theorem TrivSqZeroExt.sndCLM_toFun (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] (x : ) :
() x = x.snd
def TrivSqZeroExt.sndCLM (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] :
→L[R] M

TrivSqZeroExt.snd as a continuous linear map.

Equations
• = let __src := ; { toFun := TrivSqZeroExt.snd, map_add' := , map_smul' := , cont := }
Instances For
@[simp]
theorem TrivSqZeroExt.inlCLM_apply (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] (r : R) :
() r =
@[simp]
theorem TrivSqZeroExt.inlCLM_toFun (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] (r : R) :
() r =
def TrivSqZeroExt.inlCLM (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] :
R →L[R]

TrivSqZeroExt.inl as a continuous linear map.

Equations
• = let __src := ; { toFun := TrivSqZeroExt.inl, map_add' := , map_smul' := , cont := }
Instances For
@[simp]
theorem TrivSqZeroExt.inrCLM_toFun (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] (m : M) :
() m =
@[simp]
theorem TrivSqZeroExt.inrCLM_apply (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] (m : M) :
() m =
def TrivSqZeroExt.inrCLM (R : Type u_3) (M : Type u_4) [] [] [] [] [Module R M] :
M →L[R]

TrivSqZeroExt.inr as a continuous linear map.

Equations
• = let __src := ; { toFun := TrivSqZeroExt.inr, map_add' := , map_smul' := , cont := }
Instances For
instance TrivSqZeroExt.instContinuousAdd {R : Type u_3} {M : Type u_4} [] [] [Add R] [Add M] [] [] :
Equations
• =
instance TrivSqZeroExt.instContinuousMulOfContinuousSMulMulOppositeOfContinuousAdd {R : Type u_3} {M : Type u_4} [] [] [Mul R] [Add M] [SMul R M] [SMul Rᵐᵒᵖ M] [] [] [] [] :
Equations
• =
instance TrivSqZeroExt.instContinuousNeg {R : Type u_3} {M : Type u_4} [] [] [Neg R] [Neg M] [] [] :
Equations
• =
theorem TrivSqZeroExt.topologicalSemiring {R : Type u_3} {M : Type u_4} [] [] [] [] [Module R M] [] [] [] [] :

This is not an instance due to complaints by the fails_quickly linter. At any rate, we only really care about the TopologicalRing instance below.

instance TrivSqZeroExt.instTopologicalRingOfTopologicalAddGroupOfContinuousSMulMulOpposite {R : Type u_3} {M : Type u_4} [] [] [Ring R] [] [Module R M] [] [] [] [] :
Equations
• =
instance TrivSqZeroExt.instContinuousConstSMul {S : Type u_2} {R : Type u_3} {M : Type u_4} [] [] [SMul S R] [SMul S M] [] [] :
Equations
• =
instance TrivSqZeroExt.instContinuousSMul {S : Type u_2} {R : Type u_3} {M : Type u_4} [] [] [] [SMul S R] [SMul S M] [] [] :
Equations
• =
theorem TrivSqZeroExt.hasSum_inl {α : Type u_1} {R : Type u_3} (M : Type u_4) [] [] [] [] {f : αR} {a : R} (h : HasSum f a) :
HasSum (fun (x : α) => TrivSqZeroExt.inl (f x))
theorem TrivSqZeroExt.hasSum_inr {α : Type u_1} {R : Type u_3} (M : Type u_4) [] [] [] [] {f : αM} {a : M} (h : HasSum f a) :
HasSum (fun (x : α) => TrivSqZeroExt.inr (f x))
theorem TrivSqZeroExt.hasSum_fst {α : Type u_1} {R : Type u_3} (M : Type u_4) [] [] [] [] {f : α} {a : } (h : HasSum f a) :
HasSum (fun (x : α) => (f x).fst) a.fst
theorem TrivSqZeroExt.hasSum_snd {α : Type u_1} {R : Type u_3} (M : Type u_4) [] [] [] [] {f : α} {a : } (h : HasSum f a) :
HasSum (fun (x : α) => (f x).snd) a.snd
instance TrivSqZeroExt.instUniformSpace {R : Type u_3} {M : Type u_4} [] [] :
Equations
• TrivSqZeroExt.instUniformSpace = let __spread.0 := instUniformSpaceProd; UniformSpace.mk UniformSpace.uniformity
instance TrivSqZeroExt.instCompleteSpace {R : Type u_3} {M : Type u_4} [] [] [] [] :
Equations
• =
instance TrivSqZeroExt.instUniformAddGroup {R : Type u_3} {M : Type u_4} [] [] [] [] [] [] :
Equations
• =
theorem TrivSqZeroExt.uniformity_def {R : Type u_3} {M : Type u_4} [] [] :
uniformity () = Filter.comap (fun (p : × ) => (p.1.fst, p.2.fst)) () Filter.comap (fun (p : × ) => (p.1.snd, p.2.snd)) ()
theorem TrivSqZeroExt.uniformContinuous_fst {R : Type u_3} {M : Type u_4} [] [] :
UniformContinuous TrivSqZeroExt.fst
theorem TrivSqZeroExt.uniformContinuous_snd {R : Type u_3} {M : Type u_4} [] [] :
UniformContinuous TrivSqZeroExt.snd
theorem TrivSqZeroExt.uniformContinuous_inl {R : Type u_3} {M : Type u_4} [] [] [Zero M] :
UniformContinuous TrivSqZeroExt.inl
theorem TrivSqZeroExt.uniformContinuous_inr {R : Type u_3} {M : Type u_4} [] [] [Zero R] :
UniformContinuous TrivSqZeroExt.inr