@@ -5,9 +5,10 @@ Authors: Chris Hughes, Thomas Browning
5
5
-/
6
6
import Mathlib.Algebra.Group.Subgroup.Actions
7
7
import Mathlib.Algebra.Group.Subgroup.ZPowers.Lemmas
8
+ import Mathlib.Data.Fintype.BigOperators
8
9
import Mathlib.Dynamics.PeriodicPts.Defs
9
10
import Mathlib.GroupTheory.Commutator.Basic
10
- import Mathlib.GroupTheory.Coset.Card
11
+ import Mathlib.GroupTheory.Coset.Basic
11
12
import Mathlib.GroupTheory.GroupAction.Basic
12
13
import Mathlib.GroupTheory.GroupAction.ConjAct
13
14
import Mathlib.GroupTheory.GroupAction.Hom
@@ -17,12 +18,14 @@ import Mathlib.GroupTheory.GroupAction.Hom
17
18
18
19
This file proves properties of group actions which use the quotient group construction, notably
19
20
* the orbit-stabilizer theorem `MulAction.card_orbit_mul_card_stabilizer_eq_card_group`
20
- * the class formula `MulAction.card_eq_sum_card_group_div_card_stabilizer '`
21
+ * the class formula `MulAction.selfEquivSigmaOrbitsQuotientStabilizer '`
21
22
* Burnside's lemma `MulAction.sum_card_fixedBy_eq_card_orbits_mul_card_group`,
22
23
23
24
as well as their analogues for additive groups.
24
25
-/
25
26
27
+ assert_not_exists Cardinal
28
+
26
29
universe u v w
27
30
28
31
variable {α : Type u} {β : Type v} {γ : Type w}
@@ -211,26 +214,6 @@ noncomputable def selfEquivSigmaOrbitsQuotientStabilizer' {φ : Ω → β}
211
214
(Equiv.setCongr <| orbitRel.Quotient.orbit_eq_orbit_out _ hφ).trans <|
212
215
orbitEquivQuotientStabilizer α (φ ω)
213
216
214
- /-- **Class formula** for a finite group acting on a finite type. See
215
- `MulAction.card_eq_sum_card_group_div_card_stabilizer` for a specialized version using
216
- `Quotient.out`. -/
217
- @[to_additive
218
- /-- **Class formula** for a finite group acting on a finite type. See
219
- `AddAction.card_eq_sum_card_addGroup_div_card_stabilizer` for a specialized version using
220
- `Quotient.out`. -/ ]
221
- theorem card_eq_sum_card_group_div_card_stabilizer' [Fintype α] [Fintype β] [Fintype Ω]
222
- [∀ b : β, Fintype <| stabilizer α b] {φ : Ω → β} (hφ : LeftInverse Quotient.mk'' φ) :
223
- Fintype.card β = ∑ ω : Ω, Fintype.card α / Fintype.card (stabilizer α (φ ω)) := by
224
- classical
225
- have : ∀ ω : Ω, Fintype.card α / Fintype.card (stabilizer α (φ ω)) =
226
- Fintype.card (α ⧸ stabilizer α (φ ω)) := by
227
- intro ω
228
- rw [Fintype.card_congr (@Subgroup.groupEquivQuotientProdSubgroup α _ (stabilizer α <| φ ω)),
229
- Fintype.card_prod, Nat.mul_div_cancel]
230
- exact Fintype.card_pos_iff.mpr (by infer_instance)
231
- simp_rw [this, ← Fintype.card_sigma,
232
- Fintype.card_congr (selfEquivSigmaOrbitsQuotientStabilizer' α β hφ)]
233
-
234
217
/-- **Class formula** . This is a special case of
235
218
`MulAction.self_equiv_sigma_orbits_quotient_stabilizer'` with `φ = Quotient.out`. -/
236
219
@[to_additive
@@ -239,13 +222,6 @@ theorem card_eq_sum_card_group_div_card_stabilizer' [Fintype α] [Fintype β] [F
239
222
noncomputable def selfEquivSigmaOrbitsQuotientStabilizer : β ≃ Σ ω : Ω, α ⧸ stabilizer α ω.out :=
240
223
selfEquivSigmaOrbitsQuotientStabilizer' α β Quotient.out_eq'
241
224
242
- /-- **Class formula** for a finite group acting on a finite type. -/
243
- @[to_additive /-- **Class formula** for a finite group acting on a finite type. -/]
244
- theorem card_eq_sum_card_group_div_card_stabilizer [Fintype α] [Fintype β] [Fintype Ω]
245
- [∀ b : β, Fintype <| stabilizer α b] :
246
- Fintype.card β = ∑ ω : Ω, Fintype.card α / Fintype.card (stabilizer α ω.out) :=
247
- card_eq_sum_card_group_div_card_stabilizer' α β Quotient.out_eq'
248
-
249
225
/-- **Burnside's lemma** : a (noncomputable) bijection between the disjoint union of all
250
226
`{x ∈ X | g • x = x}` for `g ∈ G` and the product `G × X/G`, where `G` is a group acting on `X` and
251
227
`X/G` denotes the quotient of `X` by the relation `orbitRel G X`. -/
0 commit comments