@@ -13,12 +13,13 @@ universe u
1313open Matrix MatrixGroups Subgroup MulAut MaximalAbelianSubgroup Pointwise SpecialSubgroups
1414
1515
16- /- The non-central part of a subgroup -/
16+ /-- The non-central part of a subgroup as a set. -/
1717def Subgroup.noncenter {G : Type *} [Group G] (H : Subgroup G) : Set G :=
1818 H.carrier \ center G
1919
20-
21-
20+ theorem Subgroup.mem_noncenter {G : Type *} [Group G] {H : Subgroup G} {x : G} :
21+ x ∈ H.noncenter ↔ x ∈ H ∧ x ∉ center G := by
22+ simp [Subgroup.noncenter, Set.mem_diff, SetLike.mem_coe]
2223
2324/-
2425Definition. The set $\mathcal{C}(A) = Cl(A) = \{ x A x^{-1} \; | \; x ∈ G \} $
@@ -703,12 +704,57 @@ theorem card_noncenter_fin_subgroup_eq_sum_card_noncenter_mul_index_normalizer {
703704
704705#check MonoidHom
705706
706-
707-
708- /- Lemma 2.5 N_G(A) = N_G(A*)-/
709- lemma normalizer_noncentral_eq {F : Type *} [Field F] (A G : Subgroup SL(2 ,F)) [Finite G]
710- (hA : A ∈ MaximalAbelianSubgroupsOf G) : normalizer (A.subgroupOf G) = setNormalizer (noncenter (A.subgroupOf G)) := by
711- sorry
707+ -- todo: probably somewhere in mathlib, but I can't find it.
708+ lemma center_conj {G : Type *} [Group G] (x : G) (y: G) :
709+ x ∈ center G ↔ y * x * y⁻¹ ∈ center G := by
710+ simp only [mem_center_iff]
711+ constructor <;> intro h z
712+ · have := h (y⁻¹ * z * y)
713+ calc z * (y * x * y⁻¹)
714+ = y * (y⁻¹ * z * y * x) * y⁻¹ := by group
715+ _ = y * (x * (y⁻¹ * z * y)) * y⁻¹ := by rw [this]
716+ _ = y * x * y⁻¹ * z := by group
717+ · have := h (y * z * y⁻¹)
718+ calc z * x
719+ = y⁻¹ * (y * z * y⁻¹ * (y * x * y⁻¹)) * y := by group
720+ _ = y⁻¹ * ((y * x * y⁻¹) * (y * z * y⁻¹)) * y := by rw [this]
721+ _ = x * z := by group
722+
723+ /-- Lemma 2.5 N_G(A) = N_G(A*)
724+ Oddly it doesn't need any assumption about A being maximal or abelian.
725+ -/
726+ lemma normalizer_noncentral_eq {F : Type *} [Field F] (A G : Subgroup SL(2 ,F)) [Finite G]:
727+ normalizer (A.subgroupOf G) = setNormalizer (noncenter (A.subgroupOf G)) := by
728+ ext x
729+ constructor
730+ . intro h
731+ rw [mem_normalizer_iff] at h
732+ simp [setNormalizer]
733+ intro a ha
734+ specialize h ⟨a, ha⟩
735+ simp [Subgroup.mem_noncenter]
736+ rw [h]
737+ suffices ⟨a, ha⟩ ∈ center ↥G ↔ x * ⟨a, ha⟩ * x⁻¹ ∈ center ↥G by
738+ apply not_iff_not.mpr at this
739+ rw [this]
740+ rw [← center_conj]
741+ . intro h
742+ rw [mem_normalizer_iff]
743+ simp [setNormalizer] at h
744+ intro a
745+ specialize h a a.prop
746+ simp [Subgroup.mem_noncenter] at h
747+ by_cases hc: a ∈ center ↥G
748+ . have : x * a * x⁻¹ = a := by
749+ rw [mem_center_iff] at hc
750+ specialize hc x
751+ rw [hc]
752+ group
753+ rw [this]
754+ . simp [hc] at h
755+ rw [not_iff_not.mpr (center_conj a x)] at hc
756+ simp [hc] at h
757+ exact h
712758
713759/- Lemma Let `Q` be a `p`-Sylow subgroup of `G` then $N_G(Q \sqcup Z) = N_G(Q)$-/
714760lemma normalizer_Sylow_join_center_eq_normalizer_Sylow {F : Type *} [Field F] {p : ℕ}
0 commit comments