import Mathlib import Definitions.Def_Mathlib_Algebra_Algebra_Hom section namespace UniformSpace.Completion variable {α : Type*} [Ring α] [UniformSpace α] [IsTopologicalRing α] [IsUniformAddGroup α] {β : Type*} [UniformSpace β] [Ring β] [IsUniformAddGroup β] [IsTopologicalRing β] (f : α →+* β) (hf : Continuous f) variable {f} noncomputable def mapSemialgHom {α : Type*} [CommRing α] [UniformSpace α] [IsTopologicalRing α] [IsUniformAddGroup α] {β : Type*} [UniformSpace β] [CommRing β] [IsUniformAddGroup β] [IsTopologicalRing β] (f : α →+* β) (hf : Continuous f) : Completion α →ₛₐ[f] Completion β where __ := UniformSpace.Completion.mapRingHom f hf map_smul' m x := by simp only [RingHom.toMonoidHom_eq_coe, OneHom.toFun_eq_coe, MonoidHom.toOneHom_coe, MonoidHom.coe_coe] rw [Algebra.smul_def, map_mul, Algebra.smul_def] congr exact extensionHom_coe _ _ m theorem mapSemialgHom_apply {α : Type*} [CommRing α] [UniformSpace α] [IsTopologicalRing α] [IsUniformAddGroup α] {β : Type*} [UniformSpace β] [CommRing β] [IsUniformAddGroup β] [IsTopologicalRing β] (f : α →+* β) (hf : Continuous f) (x : UniformSpace.Completion α) : mapSemialgHom f hf x = UniformSpace.Completion.map f x := rfl theorem mapSemialgHom_coe {α : Type*} [CommRing α] [UniformSpace α] [IsTopologicalRing α] [IsUniformAddGroup α] {β : Type*} [UniformSpace β] [CommRing β] [IsUniformAddGroup β] [IsTopologicalRing β] {f : α →+* β} (hf : UniformContinuous f) (a : α) : mapSemialgHom f hf.continuous a = f a := by rw [mapSemialgHom_apply, map_coe hf] end UniformSpace.Completion