# Sylow theorems #

The Sylow theorems are the following results for every finite group G and every prime number p.

• There exists a Sylow p-subgroup of G.
• All Sylow p-subgroups of G are conjugate to each other.
• Let nₚ be the number of Sylow p-subgroups of G, then nₚ divides the index of the Sylow p-subgroup, nₚ ≡ 1 [MOD p], and nₚ is equal to the index of the normalizer of the Sylow p-subgroup in G.

## Main definitions #

• Sylow p G : The type of Sylow p-subgroups of G.

## Main statements #

• exists_subgroup_card_pow_prime: A generalization of Sylow's first theorem: For every prime power pⁿ dividing the cardinality of G, there exists a subgroup of G of order pⁿ.
• IsPGroup.exists_le_sylow: A generalization of Sylow's first theorem: Every p-subgroup is contained in a Sylow p-subgroup.
• Sylow.card_eq_multiplicity: The cardinality of a Sylow subgroup is p ^ n where n is the multiplicity of p in the group order.
• sylow_conjugate: A generalization of Sylow's second theorem: If the number of Sylow p-subgroups is finite, then all Sylow p-subgroups are conjugate.
• card_sylow_modEq_one: A generalization of Sylow's third theorem: If the number of Sylow p-subgroups is finite, then it is congruent to 1 modulo p.
structure Sylow (p : ) (G : Type u_1) [] extends :
Type u_1

A Sylow p-subgroup is a maximal p-subgroup.

• carrier : Set G
• mul_mem' : ∀ {a b : G}, a self.carrierb self.carriera * b self.carrier
• one_mem' : 1 self.carrier
• inv_mem' : ∀ {x : G}, x self.carrierx⁻¹ self.carrier
• isPGroup' : IsPGroup p self
• is_maximal' : ∀ {Q : }, IsPGroup p Qself QQ = self
Instances For
instance Sylow.instCoeOutSylowSubgroup {p : } {G : Type u_1} [] :
CoeOut (Sylow p G) ()
Equations
• Sylow.instCoeOutSylowSubgroup = { coe := Sylow.toSubgroup }
theorem Sylow.ext {p : } {G : Type u_1} [] {P : Sylow p G} {Q : Sylow p G} (h : P = Q) :
P = Q
theorem Sylow.ext_iff {p : } {G : Type u_1} [] {P : Sylow p G} {Q : Sylow p G} :
P = Q P = Q
instance Sylow.instSetLikeSylow {p : } {G : Type u_1} [] :
SetLike (Sylow p G) G
Equations
• One or more equations did not get rendered due to their size.
instance Sylow.mulActionLeft {p : } {G : Type u_1} [] (P : Sylow p G) {α : Type u_2} [] :
MulAction (P) α

The action by a Sylow subgroup is the action by the underlying group.

Equations
def Sylow.comapOfKerIsPGroup {p : } {G : Type u_1} [] (P : Sylow p G) {K : Type u_2} [] (ϕ : K →* G) (hϕ : IsPGroup p ()) (h : P ) :
Sylow p K

The preimage of a Sylow subgroup under a p-group-kernel homomorphism is a Sylow subgroup.

Equations
• One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem Sylow.coe_comapOfKerIsPGroup {p : } {G : Type u_1} [] (P : Sylow p G) {K : Type u_2} [] (ϕ : K →* G) (hϕ : IsPGroup p ()) (h : P ) :
() =
def Sylow.comapOfInjective {p : } {G : Type u_1} [] (P : Sylow p G) {K : Type u_2} [] (ϕ : K →* G) (hϕ : ) (h : P ) :
Sylow p K

The preimage of a Sylow subgroup under an injective homomorphism is a Sylow subgroup.

Equations
Instances For
@[simp]
theorem Sylow.coe_comapOfInjective {p : } {G : Type u_1} [] (P : Sylow p G) {K : Type u_2} [] (ϕ : K →* G) (hϕ : ) (h : P ) :
() =
def Sylow.subtype {p : } {G : Type u_1} [] (P : Sylow p G) {N : } (h : P N) :
Sylow p N

A sylow subgroup of G is also a sylow subgroup of a subgroup of G.

Equations
Instances For
@[simp]
theorem Sylow.coe_subtype {p : } {G : Type u_1} [] (P : Sylow p G) {N : } (h : P N) :
() = Subgroup.subgroupOf (P) N
theorem Sylow.subtype_injective {p : } {G : Type u_1} [] {N : } {P : Sylow p G} {Q : Sylow p G} {hP : P N} {hQ : Q N} (h : = ) :
P = Q
theorem IsPGroup.exists_le_sylow {p : } {G : Type u_1} [] {P : } (hP : IsPGroup p P) :
∃ (Q : Sylow p G), P Q

A generalization of Sylow's first theorem. Every p-subgroup is contained in a Sylow p-subgroup.

instance Sylow.nonempty {p : } {G : Type u_1} [] :
Equations
noncomputable instance Sylow.inhabited {p : } {G : Type u_1} [] :
Equations
theorem Sylow.exists_comap_eq_of_ker_isPGroup {p : } {G : Type u_1} [] {H : Type u_2} [] (P : Sylow p H) {f : H →* G} (hf : IsPGroup p ()) :
∃ (Q : Sylow p G), = P
theorem Sylow.exists_comap_eq_of_injective {p : } {G : Type u_1} [] {H : Type u_2} [] (P : Sylow p H) {f : H →* G} (hf : ) :
∃ (Q : Sylow p G), = P
theorem Sylow.exists_comap_subtype_eq {p : } {G : Type u_1} [] {H : } (P : Sylow p H) :
∃ (Q : Sylow p G), = P
noncomputable def Sylow.fintypeOfKerIsPGroup {p : } {G : Type u_1} [] {H : Type u_2} [] {f : H →* G} (hf : IsPGroup p ()) [Fintype (Sylow p G)] :

If the kernel of f : H →* G is a p-group, then Fintype (Sylow p G) implies Fintype (Sylow p H).

Equations
• One or more equations did not get rendered due to their size.
Instances For
noncomputable def Sylow.fintypeOfInjective {p : } {G : Type u_1} [] {H : Type u_2} [] {f : H →* G} (hf : ) [Fintype (Sylow p G)] :

If f : H →* G is injective, then Fintype (Sylow p G) implies Fintype (Sylow p H).

Equations
Instances For
noncomputable instance instFintypeSylowSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToGroup {p : } {G : Type u_1} [] (H : ) [Fintype (Sylow p G)] :
Fintype (Sylow p H)

If H is a subgroup of G, then Fintype (Sylow p G) implies Fintype (Sylow p H).

Equations

If H is a subgroup of G, then Finite (Sylow p G) implies Finite (Sylow p H).

Equations
instance Sylow.pointwiseMulAction {p : } {G : Type u_1} [] {α : Type u_2} [] [] :
MulAction α (Sylow p G)

Subgroup.pointwiseMulAction preserves Sylow subgroups.

Equations
theorem Sylow.pointwise_smul_def {p : } {G : Type u_1} [] {α : Type u_2} [] [] {g : α} {P : Sylow p G} :
(g P) = g P
instance Sylow.mulAction {p : } {G : Type u_1} [] :
Equations
theorem Sylow.smul_def {p : } {G : Type u_1} [] {g : G} {P : Sylow p G} :
g P = MulAut.conj g P
theorem Sylow.coe_subgroup_smul {p : } {G : Type u_1} [] {g : G} {P : Sylow p G} :
(g P) = MulAut.conj g P
theorem Sylow.coe_smul {p : } {G : Type u_1} [] {g : G} {P : Sylow p G} :
(g P) = MulAut.conj g P
theorem Sylow.smul_le {p : } {G : Type u_1} [] {P : Sylow p G} {H : } (hP : P H) (h : H) :
(h P) H
theorem Sylow.smul_subtype {p : } {G : Type u_1} [] {P : Sylow p G} {H : } (hP : P H) (h : H) :
h = Sylow.subtype (h P) (_ : (h P) H)
theorem Sylow.smul_eq_iff_mem_normalizer {p : } {G : Type u_1} [] {g : G} {P : Sylow p G} :
g P = P
theorem Sylow.smul_eq_of_normal {p : } {G : Type u_1} [] {g : G} {P : Sylow p G} [h : ] :
g P = P
theorem Subgroup.sylow_mem_fixedPoints_iff {p : } {G : Type u_1} [] (H : ) {P : Sylow p G} :
theorem IsPGroup.inf_normalizer_sylow {p : } {G : Type u_1} [] {P : } (hP : IsPGroup p P) (Q : Sylow p G) :
= P Q
theorem IsPGroup.sylow_mem_fixedPoints_iff {p : } {G : Type u_1} [] {P : } (hP : IsPGroup p P) {Q : Sylow p G} :
Q MulAction.fixedPoints (P) (Sylow p G) P Q

A generalization of Sylow's second theorem. If the number of Sylow p-subgroups is finite, then all Sylow p-subgroups are conjugate.

Equations
• (_ : ) = (_ : )
theorem card_sylow_modEq_one (p : ) (G : Type u_1) [] [Fact ()] [Fintype (Sylow p G)] :

A generalization of Sylow's third theorem. If the number of Sylow p-subgroups is finite, then it is congruent to 1 modulo p.

theorem not_dvd_card_sylow (p : ) (G : Type u_1) [] [hp : Fact ()] [Fintype (Sylow p G)] :
def Sylow.equivSMul {p : } {G : Type u_1} [] (P : Sylow p G) (g : G) :
P ≃* (g P)

Sylow subgroups are isomorphic

Equations
Instances For
noncomputable def Sylow.equiv {p : } {G : Type u_1} [] [Fact ()] [Finite (Sylow p G)] (P : Sylow p G) (Q : Sylow p G) :
P ≃* Q

Sylow subgroups are isomorphic

Equations
Instances For
@[simp]
theorem Sylow.orbit_eq_top {p : } {G : Type u_1} [] [Fact ()] [Finite (Sylow p G)] (P : Sylow p G) :
theorem Sylow.stabilizer_eq_normalizer {p : } {G : Type u_1} [] (P : Sylow p G) :
theorem Sylow.conj_eq_normalizer_conj_of_mem_centralizer {p : } {G : Type u_1} [] [Fact ()] [Finite (Sylow p G)] (P : Sylow p G) (x : G) (g : G) (hx : ) (hy : g⁻¹ * x * g ) :
∃ n ∈ , g⁻¹ * x * g = n⁻¹ * x * n
theorem Sylow.conj_eq_normalizer_conj_of_mem {p : } {G : Type u_1} [] [Fact ()] [Finite (Sylow p G)] (P : Sylow p G) [_hP : ] (x : G) (g : G) (hx : x P) (hy : g⁻¹ * x * g P) :
∃ n ∈ , g⁻¹ * x * g = n⁻¹ * x * n
noncomputable def Sylow.equivQuotientNormalizer {p : } {G : Type u_1} [] [Fact ()] [Finite (Sylow p G)] (P : Sylow p G) :
Sylow p G

Sylow p-subgroups are in bijection with cosets of the normalizer of a Sylow p-subgroup

Equations
• One or more equations did not get rendered due to their size.
Instances For
noncomputable instance instFintypeQuotientSubgroupInstHasQuotientSubgroupNormalizerToSubgroup {p : } {G : Type u_1} [] [Fact ()] [Fintype (Sylow p G)] (P : Sylow p G) :
Equations
theorem card_sylow_eq_card_quotient_normalizer {p : } {G : Type u_1} [] [Fact ()] [Fintype (Sylow p G)] (P : Sylow p G) :
theorem card_sylow_eq_index_normalizer {p : } {G : Type u_1} [] [Fact ()] [Fintype (Sylow p G)] (P : Sylow p G) :
theorem card_sylow_dvd_index {p : } {G : Type u_1} [] [Fact ()] [Fintype (Sylow p G)] (P : Sylow p G) :
theorem not_dvd_index_sylow' {p : } {G : Type u_1} [] [hp : Fact ()] (P : Sylow p G) [] [fP : ] :
theorem not_dvd_index_sylow {p : } {G : Type u_1} [] [hp : Fact ()] [Finite (Sylow p G)] (P : Sylow p G) (hP : Subgroup.relindex (P) () 0) :
theorem Sylow.normalizer_sup_eq_top {G : Type u_1} [] {p : } [Fact ()] {N : } [] [Finite (Sylow p N)] (P : Sylow p N) :
N =

Frattini's Argument: If N is a normal subgroup of G, and if P is a Sylow p-subgroup of N, then N_G(P) ⊔ N = G.

theorem Sylow.normalizer_sup_eq_top' {G : Type u_1} [] {p : } [Fact ()] {N : } [] [Finite (Sylow p N)] (P : Sylow p G) (hP : P N) :

Frattini's Argument: If N is a normal subgroup of G, and if P is a Sylow p-subgroup of N, then N_G(P) ⊔ N = G.

theorem QuotientGroup.card_preimage_mk {G : Type u} [] [] (s : ) (t : Set (G s)) :
Fintype.card (QuotientGroup.mk ⁻¹' t) =
theorem Sylow.mem_fixedPoints_mul_left_cosets_iff_mem_normalizer {G : Type u} [] {H : } [Finite H] {x : G} :
x MulAction.fixedPoints (H) (G H)
def Sylow.fixedPointsMulLeftCosetsEquivQuotient {G : Type u} [] (H : ) [Finite H] :
(MulAction.fixedPoints (H) (G H))

The fixed points of the action of H on its cosets correspond to normalizer H / H.

Equations
• One or more equations did not get rendered due to their size.
Instances For
theorem Sylow.card_quotient_normalizer_modEq_card_quotient {G : Type u} [] [] {p : } {n : } [hp : Fact ()] {H : } (hH : = p ^ n) :

If H is a p-subgroup of G, then the index of H inside its normalizer is congruent mod p to the index of H.

theorem Sylow.card_normalizer_modEq_card {G : Type u} [] [] {p : } {n : } [hp : Fact ()] {H : } (hH : = p ^ n) :
[MOD p ^ (n + 1)]

If H is a subgroup of G of cardinality p ^ n, then the cardinality of the normalizer of H is congruent mod p ^ (n + 1) to the cardinality of G.

theorem Sylow.prime_dvd_card_quotient_normalizer {G : Type u} [] [] {p : } {n : } [hp : Fact ()] (hdvd : p ^ (n + 1) ) {H : } (hH : = p ^ n) :
p

If H is a p-subgroup but not a Sylow p-subgroup, then p divides the index of H inside its normalizer.

theorem Sylow.prime_pow_dvd_card_normalizer {G : Type u} [] [] {p : } {n : } [_hp : Fact ()] (hdvd : p ^ (n + 1) ) {H : } (hH : = p ^ n) :
p ^ (n + 1)

If H is a p-subgroup but not a Sylow p-subgroup of cardinality p ^ n, then p ^ (n + 1) divides the cardinality of the normalizer of H.

theorem Sylow.exists_subgroup_card_pow_succ {G : Type u} [] [] {p : } {n : } [hp : Fact ()] (hdvd : p ^ (n + 1) ) {H : } (hH : = p ^ n) :
∃ (K : ), = p ^ (n + 1) H K

If H is a subgroup of G of cardinality p ^ n, then H is contained in a subgroup of cardinality p ^ (n + 1) if p ^ (n + 1) divides the cardinality of G

theorem Sylow.exists_subgroup_card_pow_prime_le {G : Type u} [] [] (p : ) {n : } {m : } [_hp : Fact ()] (_hdvd : p ^ m ) (H : ) (_hH : = p ^ n) (_hnm : n m) :
∃ (K : ), = p ^ m H K

If H is a subgroup of G of cardinality p ^ n, then H is contained in a subgroup of cardinality p ^ m if n ≤ m and p ^ m divides the cardinality of G

theorem Sylow.exists_subgroup_card_pow_prime {G : Type u} [] [] (p : ) {n : } [Fact ()] (hdvd : p ^ n ) :
∃ (K : ), = p ^ n

A generalisation of Sylow's first theorem. If p ^ n divides the cardinality of G, then there is a subgroup of cardinality p ^ n

theorem Sylow.exists_subgroup_card_pow_prime_of_le_card {G : Type u} [] {n : } {p : } (hp : ) (h : IsPGroup p G) (hn : p ^ n ) :
∃ (H : ), Nat.card H = p ^ n

A special case of Sylow's first theorem. If G is a p-group of size at least p ^ n then there is a subgroup of cardinality p ^ n.

theorem Sylow.exists_subgroup_le_card_pow_prime_of_le_card {G : Type u} [] {n : } {p : } (hp : ) (h : IsPGroup p G) {H : } (hn : p ^ n Nat.card H) :
∃ H' ≤ H, Nat.card H' = p ^ n

A special case of Sylow's first theorem. If G is a p-group and H a subgroup of size at least p ^ n then there is a subgroup of H of cardinality p ^ n.

theorem Sylow.exists_subgroup_le_card_le {G : Type u} [] {k : } {p : } (hp : ) (h : IsPGroup p G) {H : } (hk : k Nat.card H) (hk₀ : k 0) :
∃ H' ≤ H, Nat.card H' k k < p * Nat.card H'

A special case of Sylow's first theorem. If G is a p-group and H a subgroup of size at least k then there is a subgroup of H of cardinality between k / p and k.

theorem Sylow.pow_dvd_card_of_pow_dvd_card {G : Type u} [] [] {p : } {n : } [hp : Fact ()] (P : Sylow p G) (hdvd : p ^ n ) :
p ^ n Fintype.card P
theorem Sylow.dvd_card_of_dvd_card {G : Type u} [] [] {p : } [Fact ()] (P : Sylow p G) (hdvd : ) :
p Fintype.card P
theorem Sylow.card_coprime_index {G : Type u} [] [] {p : } [hp : Fact ()] (P : Sylow p G) :

Sylow subgroups are Hall subgroups.

theorem Sylow.ne_bot_of_dvd_card {G : Type u} [] [] {p : } [hp : Fact ()] (P : Sylow p G) (hdvd : ) :
P
theorem Sylow.card_eq_multiplicity {G : Type u} [] [] {p : } [hp : Fact ()] (P : Sylow p G) :
Fintype.card P = p ^ p

The cardinality of a Sylow subgroup is p ^ n where n is the multiplicity of p in the group order.

def Sylow.ofCard {G : Type u} [] [] {p : } [Fact ()] (H : ) [Fintype H] (card_eq : = p ^ p) :
Sylow p G

A subgroup with cardinality p ^ n is a Sylow subgroup where n is the multiplicity of p in the group order.

Equations
Instances For
@[simp]
theorem Sylow.coe_ofCard {G : Type u} [] [] {p : } [Fact ()] (H : ) [Fintype H] (card_eq : = p ^ p) :
(Sylow.ofCard H card_eq) = H
noncomputable def Sylow.unique_of_normal {G : Type u} [] {p : } [Fact ()] [Finite (Sylow p G)] (P : Sylow p G) (h : ) :

If G has a normal Sylow p-subgroup, then it is the only Sylow p-subgroup.

Equations
• = { toInhabited := Sylow.inhabited, uniq := (_ : ∀ (Q : Sylow p G), Q = default) }
Instances For
theorem Sylow.characteristic_of_normal {G : Type u} [] {p : } [Fact ()] [Finite (Sylow p G)] (P : Sylow p G) (h : ) :
theorem Sylow.normal_of_normalizer_normal {G : Type u} [] {p : } [Fact ()] [Finite (Sylow p G)] (P : Sylow p G) (hn : ) :
@[simp]
theorem Sylow.normalizer_normalizer {G : Type u} [] {p : } [Fact ()] [Finite (Sylow p G)] (P : Sylow p G) :
theorem Sylow.normal_of_all_max_subgroups_normal {G : Type u} [] [] (hnc : ∀ (H : ), ) {p : } [Fact ()] [Finite (Sylow p G)] (P : Sylow p G) :
theorem Sylow.normal_of_normalizerCondition {G : Type u} [] (hnc : ) {p : } [Fact ()] [Finite (Sylow p G)] (P : Sylow p G) :
noncomputable def Sylow.directProductOfNormal {G : Type u} [] [] (hn : ∀ {p : } [inst : Fact ()] (P : Sylow p G), ) :
((p : { x : // x ().primeFactors }) → (P : Sylow (p) G) → P) ≃* G

If all its Sylow subgroups are normal, then a finite group is isomorphic to the direct product of these Sylow subgroups.

Equations
• One or more equations did not get rendered due to their size.
Instances For