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

Commit ed90301

Browse files
committed
feat(group_theory/commuting_probability): Commuting probability inequalities (#11564)
This PR adds some inequalities for the commuting probability.
1 parent 9ef7f6b commit ed90301

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

src/group_theory/commuting_probability.lean

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ Copyright (c) 2022 Thomas Browning. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Thomas Browning
55
-/
6-
import algebra.group.conj
6+
import group_theory.abelianization
77
import group_theory.group_action.conj_act
8+
import group_theory.index
89

910
/-!
1011
# Commuting Probability
@@ -42,6 +43,8 @@ begin
4243
apply set_fintype_card_le_univ,
4344
end
4445

46+
variables {M}
47+
4548
lemma comm_prob_eq_one_iff [h : nonempty M] : comm_prob M = 1 ↔ commutative ((*) : M → M → M) :=
4649
begin
4750
change (card {p : M × M | p.1 * p.2 = p.2 * p.1} : ℚ) / _ = 1 ↔ _,
@@ -72,3 +75,37 @@ begin
7275
rw [comm_prob, card_comm_eq_card_conj_classes_mul_card, nat.cast_mul, sq],
7376
exact mul_div_mul_right (card (conj_classes G)) (card G) (nat.cast_ne_zero.mpr card_ne_zero),
7477
end
78+
79+
variables {G} (H : subgroup G)
80+
81+
lemma subgroup.comm_prob_subgroup_le : comm_prob H ≤ comm_prob G * H.index ^ 2 :=
82+
begin
83+
/- After rewriting with `comm_prob_def`, we reduce to showing that `G` has at least as many
84+
commuting pairs as `H`. -/
85+
rw [comm_prob_def, comm_prob_def, div_le_iff, mul_assoc, ←mul_pow, ←nat.cast_mul,
86+
H.index_mul_card, div_mul_cancel, nat.cast_le],
87+
{ apply card_le_of_injective _ _,
88+
exact λ p, ⟨⟨p.1.1, p.1.2⟩, subtype.ext_iff.mp p.2⟩,
89+
exact λ p q h, by simpa only [subtype.ext_iff, prod.ext_iff] using h },
90+
{ exact pow_ne_zero 2 (nat.cast_ne_zero.mpr card_ne_zero) },
91+
{ exact pow_pos (nat.cast_pos.mpr card_pos) 2 },
92+
end
93+
94+
lemma subgroup.comm_prob_quotient_le [H.normal] : comm_prob (G ⧸ H) ≤ comm_prob G * card H :=
95+
begin
96+
/- After rewriting with `comm_prob_def'`, we reduce to showing that `G` has at least as many
97+
conjugacy classes as `G ⧸ H`. -/
98+
rw [comm_prob_def', comm_prob_def', div_le_iff, mul_assoc, ←nat.cast_mul, mul_comm (card H),
99+
←subgroup.card_eq_card_quotient_mul_card_subgroup, div_mul_cancel, nat.cast_le],
100+
{ exact card_le_of_surjective (conj_classes.map (quotient_group.mk' H))
101+
(conj_classes.map_surjective quotient.surjective_quotient_mk') },
102+
{ exact nat.cast_ne_zero.mpr card_ne_zero },
103+
{ exact nat.cast_pos.mpr card_pos },
104+
end
105+
106+
variables (G)
107+
108+
lemma inv_card_commutator_le_comm_prob : (↑(card (commutator G)))⁻¹ ≤ comm_prob G :=
109+
(inv_pos_le_iff_one_le_mul (by exact nat.cast_pos.mpr card_pos)).mpr
110+
(le_trans (ge_of_eq (comm_prob_eq_one_iff.mpr (abelianization.comm_group G).mul_comm))
111+
(commutator G).comm_prob_quotient_le)

0 commit comments

Comments
 (0)