Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 24ebc5c

Browse files
committed
feat(group_theory/sylow): the cardinality of a sylow group (#11776)
Co-authored-by: tb65536 <tb65536@users.noreply.github.com>
1 parent 4148990 commit 24ebc5c

File tree

3 files changed

+22
-6
lines changed

3 files changed

+22
-6
lines changed

src/algebra/is_prime_pow.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,9 @@ begin
182182
simp [hab, finset.filter_singleton, not_is_prime_pow_one] },
183183
refine ⟨_, λ h, or.elim h (λ i, i.trans (dvd_mul_right _ _)) (λ i, i.trans (dvd_mul_left _ _))⟩,
184184
obtain ⟨p, k, hp, hk, rfl⟩ := (is_prime_pow_nat_iff _).1 hn,
185-
simp only [nat.prime_pow_dvd_iff_le_factorization _ _ _ hp (mul_ne_zero ha hb),
186-
nat.factorization_mul ha hb, nat.prime_pow_dvd_iff_le_factorization _ _ _ hp ha,
187-
nat.prime_pow_dvd_iff_le_factorization _ _ _ hp hb, pi.add_apply, finsupp.coe_add],
185+
simp only [hp.pow_dvd_iff_le_factorization (mul_ne_zero ha hb),
186+
nat.factorization_mul ha hb, hp.pow_dvd_iff_le_factorization ha,
187+
hp.pow_dvd_iff_le_factorization hb, pi.add_apply, finsupp.coe_add],
188188
have : a.factorization p = 0 ∨ b.factorization p = 0,
189189
{ rw [←finsupp.not_mem_support_iff, ←finsupp.not_mem_support_iff, ←not_and_distrib,
190190
←finset.mem_inter],

src/data/nat/factorization.lean

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,14 @@ begin
199199
{ rintro ⟨c, rfl⟩, rw factorization_mul hd (right_ne_zero_of_mul hn), simp },
200200
end
201201

202-
lemma prime_pow_dvd_iff_le_factorization (p k n : ℕ) (pp : prime p) (hn : n ≠ 0) :
202+
lemma prime.pow_dvd_iff_le_factorization {p k n : ℕ} (pp : prime p) (hn : n ≠ 0) :
203203
p ^ k ∣ n ↔ k ≤ n.factorization p :=
204204
by rw [←factorization_le_iff_dvd (pow_pos pp.pos k).ne' hn, pp.factorization_pow, single_le_iff]
205205

206+
lemma prime.pow_dvd_iff_dvd_pow_factorization {p k n : ℕ} (pp : prime p) (hn : n ≠ 0) :
207+
p ^ k ∣ n ↔ p ^ k ∣ p ^ n.factorization p :=
208+
by rw [pow_dvd_pow_iff_le_right pp.one_lt, pp.pow_dvd_iff_le_factorization hn]
209+
206210
lemma exists_factorization_lt_of_lt {a b : ℕ} (ha : a ≠ 0) (hab : a < b) :
207211
∃ p : ℕ, a.factorization p < b.factorization p :=
208212
begin
@@ -241,7 +245,7 @@ lemma pow_factorization_dvd (p d : ℕ) : p ^ d.factorization p ∣ d :=
241245
begin
242246
rcases eq_or_ne d 0 with rfl | hd, { simp },
243247
by_cases pp : prime p,
244-
{ rw prime_pow_dvd_iff_le_factorization p _ d pp hd },
248+
{ rw pp.pow_dvd_iff_le_factorization hd },
245249
{ rw factorization_eq_zero_of_non_prime d p pp, simp },
246250
end
247251

@@ -255,7 +259,7 @@ begin
255259
intros p,
256260
by_cases pp : prime p, swap,
257261
{ rw factorization_eq_zero_of_non_prime d p pp, exact zero_le' },
258-
rw ←prime_pow_dvd_iff_le_factorization p _ n pp hn,
262+
rw ←pp.pow_dvd_iff_le_factorization hn,
259263
exact h p _ pp (pow_factorization_dvd p _) },
260264
end
261265

src/group_theory/sylow.lean

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Chris Hughes, Thomas Browning
55
-/
66

7+
import data.nat.factorization
78
import data.set_like.fintype
89
import group_theory.group_action.conj_act
910
import group_theory.p_group
@@ -467,6 +468,17 @@ begin
467468
rwa [h, card_bot] at key,
468469
end
469470

471+
/-- The cardinality of a Sylow group is `p ^ n`
472+
where `n` is the multiplicity of `p` in the group order. -/
473+
lemma card_eq_multiplicity [fintype G] {p : ℕ} [hp : fact p.prime] (P : sylow p G) :
474+
card P = p ^ nat.factorization (card G) p :=
475+
begin
476+
obtain ⟨n, heq : card P = _⟩ := is_p_group.iff_card.mp (P.is_p_group'),
477+
refine nat.dvd_antisymm _ (P.pow_dvd_card_of_pow_dvd_card (nat.pow_factorization_dvd p _)),
478+
rw [heq, ←hp.out.pow_dvd_iff_dvd_pow_factorization (show card G ≠ 0, from card_ne_zero), ←heq],
479+
exact P.1.card_subgroup_dvd_card,
480+
end
481+
470482
lemma subsingleton_of_normal {p : ℕ} [fact p.prime] [fintype (sylow p G)] (P : sylow p G)
471483
(h : (P : subgroup G).normal) : subsingleton (sylow p G) :=
472484
begin

0 commit comments

Comments
 (0)