Skip to content

Commit 1a3f2a1

Browse files
committed
feat(GroupTheory/Transfer): A cyclic Sylow subgroup for the smallest prime has a normal complement (#19587)
This PR proves that if `G` is a finite group with smallest prime factor `p` and cyclic Sylow `p`-subgroups, then `G` has a normal `p`-complement.
1 parent 74c027f commit 1a3f2a1

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

Mathlib/GroupTheory/Index.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,10 @@ theorem index_mul_card : H.index * Nat.card H = Nat.card G := by
284284
theorem index_dvd_card : H.index ∣ Nat.card G :=
285285
⟨Nat.card H, H.index_mul_card.symm⟩
286286

287+
@[to_additive]
288+
theorem relindex_dvd_card : H.relindex K ∣ Nat.card G :=
289+
(H.subgroupOf K).index_dvd_card.trans K.card_subgroup_dvd_card
290+
287291
variable {H K L}
288292

289293
@[to_additive]

Mathlib/GroupTheory/Transfer.lean

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,3 +301,56 @@ theorem ker_transferSylow_disjoint (Q : Subgroup G) (hQ : IsPGroup p Q) :
301301
end BurnsideTransfer
302302

303303
end MonoidHom
304+
305+
namespace IsCyclic
306+
307+
open Subgroup
308+
309+
-- we could supress the variable `p`, but that might introduce `motive not type correct` issues.
310+
variable {G : Type*} [Group G] [Finite G] {p : ℕ} (hp : (Nat.card G).minFac = p) {P : Sylow p G}
311+
312+
include hp in
313+
theorem normalizer_le_centralizer (hP : IsCyclic P) : P.normalizer ≤ centralizer (P : Set G) := by
314+
subst hp
315+
by_cases hn : Nat.card G = 1
316+
· have := (Nat.card_eq_one_iff_unique.mp hn).1
317+
rw [Subsingleton.elim P.normalizer (centralizer P)]
318+
have := Fact.mk (Nat.minFac_prime hn)
319+
have key := card_dvd_of_injective _ (QuotientGroup.kerLift_injective P.normalizerMonoidHom)
320+
rw [normalizerMonoidHom_ker, ← index, ← relindex] at key
321+
refine relindex_eq_one.mp (Nat.eq_one_of_dvd_coprimes ?_ dvd_rfl key)
322+
obtain ⟨k, hk⟩ := P.2.exists_card_eq
323+
rcases eq_zero_or_pos k with h0 | h0
324+
· rw [hP.card_mulAut, hk, h0, pow_zero, Nat.totient_one]
325+
apply Nat.coprime_one_right
326+
rw [hP.card_mulAut, hk, Nat.totient_prime_pow Fact.out h0]
327+
refine (Nat.Coprime.pow_right _ ?_).mul_right ?_
328+
· replace key : P.IsCommutative := by
329+
let h := hP.commGroup
330+
exact ⟨⟨CommGroup.mul_comm⟩⟩
331+
apply Nat.Coprime.coprime_dvd_left (relindex_dvd_of_le_left P.normalizer P.le_centralizer)
332+
apply Nat.Coprime.coprime_dvd_left (relindex_dvd_index_of_le P.le_normalizer)
333+
rw [Nat.coprime_comm, Nat.Prime.coprime_iff_not_dvd Fact.out]
334+
exact P.not_dvd_index
335+
· apply Nat.Coprime.coprime_dvd_left (relindex_dvd_card (centralizer P) P.normalizer)
336+
have h1 := Nat.gcd_dvd_left (Nat.card G) ((Nat.card G).minFac - 1)
337+
have h2 := Nat.gcd_le_right (m := Nat.card G) ((Nat.card G).minFac - 1)
338+
(tsub_pos_iff_lt.mpr (Nat.minFac_prime hn).one_lt)
339+
contrapose! h2
340+
refine Nat.sub_one_lt_of_le (Nat.card G).minFac_pos (Nat.minFac_le_of_dvd ?_ h1)
341+
exact (Nat.two_le_iff _).mpr ⟨ne_zero_of_dvd_ne_zero Nat.card_pos.ne' h1, h2⟩
342+
343+
include hp in
344+
/-- A cyclic Sylow subgroup for the smallest prime has a normal complement. -/
345+
theorem isComplement' (hP : IsCyclic P) :
346+
(MonoidHom.transferSylow P (hP.normalizer_le_centralizer hp)).ker.IsComplement' P := by
347+
subst hp
348+
by_cases hn : Nat.card G = 1
349+
· have := (Nat.card_eq_one_iff_unique.mp hn).1
350+
rw [Subsingleton.elim (MonoidHom.transferSylow P (hP.normalizer_le_centralizer rfl)).ker ⊥,
351+
Subsingleton.elim P.1 ⊤]
352+
exact isComplement'_bot_top
353+
have := Fact.mk (Nat.minFac_prime hn)
354+
exact MonoidHom.ker_transferSylow_isComplement' P (hP.normalizer_le_centralizer rfl)
355+
356+
end IsCyclic

0 commit comments

Comments
 (0)