Source context 5 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace ProCGroups.ProC
open ProCGroups.Abelian
universe u
variable {C : FiniteGroupClass.{u}}
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
[CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G]def residualAbelianizationConjugationHom
(hC : FiniteGroupClass.FullFormation C)
(N : Subgroup G) [N.Normal] (hN : IsClosed (N : Set G)) :
G →* MulAut (TopologicalAbelianization (N ⧸ proCResidualCore C N)) where
toFun g := (TopologicalAbelianization.congr
(residualQuotientConjugationContinuousMulEquiv hC N hN g)).toMulEquiv
map_one' := by
apply MulEquiv.ext
intro a
obtain ⟨z, rfl⟩ := TopologicalAbelianization.surjective_mk
(N ⧸ proCResidualCore C N) a
obtain ⟨x, rfl⟩ := QuotientGroup.mk'_surjective (proCResidualCore C N) z
change TopologicalAbelianization.congr
(residualQuotientConjugationContinuousMulEquiv hC N hN (1 : G))
(TopologicalAbelianization.mk (N ⧸ proCResidualCore C N)
(QuotientGroup.mk' (proCResidualCore C N) x)) =
TopologicalAbelianization.mk (N ⧸ proCResidualCore C N)
(QuotientGroup.mk' (proCResidualCore C N) x)
rw [TopologicalAbelianization.congr_apply_mk,
residualQuotientConjugationContinuousMulEquiv_apply_mk]
exact congrArg
(fun y : N => TopologicalAbelianization.mk (N ⧸ proCResidualCore C N)
(QuotientGroup.mk' (proCResidualCore C N) y))
(DFunLike.congr_fun (map_one (MulAut.conjNormal (H := N))) x)
map_mul' g h := by
apply MulEquiv.ext
intro a
obtain ⟨z, rfl⟩ := TopologicalAbelianization.surjective_mk
(N ⧸ proCResidualCore C N) a
obtain ⟨x, rfl⟩ := QuotientGroup.mk'_surjective (proCResidualCore C N) z
change TopologicalAbelianization.congr
(residualQuotientConjugationContinuousMulEquiv hC N hN (g * h))
(TopologicalAbelianization.mk (N ⧸ proCResidualCore C N)
(QuotientGroup.mk' (proCResidualCore C N) x)) =
TopologicalAbelianization.congr
(residualQuotientConjugationContinuousMulEquiv hC N hN g)
(TopologicalAbelianization.congr
(residualQuotientConjugationContinuousMulEquiv hC N hN h)
(TopologicalAbelianization.mk (N ⧸ proCResidualCore C N)
(QuotientGroup.mk' (proCResidualCore C N) x)))
simp only [TopologicalAbelianization.congr_apply_mk,
residualQuotientConjugationContinuousMulEquiv_apply_mk]
simpa only [MulAut.mul_apply] using congrArg
(fun y : N => TopologicalAbelianization.mk (N ⧸ proCResidualCore C N)
(QuotientGroup.mk' (proCResidualCore C N) y))
(DFunLike.congr_fun (map_mul (MulAut.conjNormal (H := N)) g h) x)