@@ -3,8 +3,9 @@ Copyright (c) 2022 Thomas Browning. All rights reserved.
33Released under Apache 2.0 license as described in the file LICENSE.
44Authors: Thomas Browning
55-/
6- import algebra.group.conj
6+ import group_theory.abelianization
77import group_theory.group_action.conj_act
8+ import group_theory.index
89
910/-!
1011# Commuting Probability
4243 apply set_fintype_card_le_univ,
4344end
4445
46+ variables {M}
47+
4548lemma comm_prob_eq_one_iff [h : nonempty M] : comm_prob M = 1 ↔ commutative ((*) : M → M → M) :=
4649begin
4750 change (card {p : M × M | p.1 * p.2 = p.2 * p.1 } : ℚ) / _ = 1 ↔ _,
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),
7477end
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