Source context 3 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
-- Four group carriers and their four topologies; no new data instances.def continuousCharacterDomainCoefficientsEquiv
{G H A B : Type*} [Group G] [TopologicalSpace G]
[Group H] [TopologicalSpace H]
[CommGroup A] [TopologicalSpace A] [IsTopologicalGroup A]
[CommGroup B] [TopologicalSpace B] [IsTopologicalGroup B]
(e : G ≃ₜ* H) (d : A ≃ₜ* B) :
(H →ₜ* A) ≃* (G →ₜ* B) where
toFun f :=
{ toMonoidHom := d.toMulEquiv.toMonoidHom.comp
(f.toMonoidHom.comp e.toMulEquiv.toMonoidHom)
continuous_toFun := d.continuous.comp (f.continuous.comp e.continuous) }
invFun f :=
{ toMonoidHom := d.symm.toMulEquiv.toMonoidHom.comp
(f.toMonoidHom.comp e.symm.toMulEquiv.toMonoidHom)
continuous_toFun := d.symm.continuous.comp (f.continuous.comp e.symm.continuous) }
left_inv f := by
apply ContinuousMonoidHom.ext
intro h
change d.symm (d (f (e (e.symm h)))) = f h
rw [ContinuousMulEquiv.apply_symm_apply, ContinuousMulEquiv.symm_apply_apply]
right_inv f := by
apply ContinuousMonoidHom.ext
intro g
change d (d.symm (f (e.symm (e g)))) = f g
rw [ContinuousMulEquiv.symm_apply_apply, ContinuousMulEquiv.apply_symm_apply]
map_mul' f g := by
apply ContinuousMonoidHom.ext
intro x
exact map_mul d (f (e x)) (g (e x))