Skip to content

Commit 51dd9ef

Browse files
committed
refactor(GroupTheory/GroupAction/Basic): re-organise, rename, and make some variables implicit (#7786)
- Re-organise the namespace and section structure of GroupTheory/GroupAction/Basic.lean. - Remove the namespaces `MulAction.Stabilizer` and `AddAction.Stabilizer`, renaming `MulAction.Stabilizer.submonoid` to `MulAction.stabilizerSubmonoid`. - Make variables for the monoid/group/set implicit when an element or subset is used in the statement.
1 parent 7c1c7ff commit 51dd9ef

File tree

7 files changed

+112
-86
lines changed

7 files changed

+112
-86
lines changed

Mathlib/CategoryTheory/Action.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,12 @@ variable {X} (x : X)
113113

114114
/-- The stabilizer of a point is isomorphic to the endomorphism monoid at the
115115
corresponding point. In fact they are definitionally equivalent. -/
116-
def stabilizerIsoEnd : Stabilizer.submonoid M x ≃* @End (ActionCategory M X) _ x :=
116+
def stabilizerIsoEnd : stabilizerSubmonoid M x ≃* @End (ActionCategory M X) _ x :=
117117
MulEquiv.refl _
118118
#align category_theory.action_category.stabilizer_iso_End CategoryTheory.ActionCategory.stabilizerIsoEnd
119119

120120
@[simp]
121-
theorem stabilizerIsoEnd_apply (f : Stabilizer.submonoid M x) :
121+
theorem stabilizerIsoEnd_apply (f : stabilizerSubmonoid M x) :
122122
(stabilizerIsoEnd M x) f = f :=
123123
rfl
124124
#align category_theory.action_category.stabilizer_iso_End_apply CategoryTheory.ActionCategory.stabilizerIsoEnd_apply

Mathlib/FieldTheory/Fixed.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ variable (F : Type v) [Field F] [MulSemiringAction M F] [MulSemiringAction G F]
4545

4646
/-- The subfield of F fixed by the field endomorphism `m`. -/
4747
def FixedBy.subfield : Subfield F where
48-
carrier := fixedBy M F m
48+
carrier := fixedBy F m
4949
zero_mem' := smul_zero m
5050
add_mem' hx hy := (smul_add m _ _).trans <| congr_arg₂ _ hx hy
5151
neg_mem' hx := (smul_neg m _).trans <| congr_arg _ hx

Mathlib/GroupTheory/GroupAction/Basic.lean

Lines changed: 99 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,11 @@ open Function
3737

3838
namespace MulAction
3939

40-
variable (M : Type u) {α : Type v} [Monoid M] [MulAction M α]
40+
variable (M : Type u) [Monoid M] (α : Type v) [MulAction M α]
41+
42+
section Orbit
43+
44+
variable {α}
4145

4246
/-- The orbit of an element under an action. -/
4347
@[to_additive "The orbit of an element under an action."]
@@ -55,8 +59,8 @@ theorem mem_orbit_iff {a₁ a₂ : α} : a₂ ∈ orbit M a₁ ↔ ∃ x : M, x
5559
#align add_action.mem_orbit_iff AddAction.mem_orbit_iff
5660

5761
@[to_additive (attr := simp)]
58-
theorem mem_orbit (a : α) (x : M) : x • a ∈ orbit M a :=
59-
x, rfl⟩
62+
theorem mem_orbit (a : α) (m : M) : m • a ∈ orbit M a :=
63+
m, rfl⟩
6064
#align mul_action.mem_orbit MulAction.mem_orbit
6165
#align add_action.mem_orbit AddAction.mem_orbit
6266

@@ -102,7 +106,17 @@ theorem orbit.coe_smul {a : α} {m : M} {a' : orbit M a} : ↑(m • a') = m •
102106
#align mul_action.orbit.coe_smul MulAction.orbit.coe_smul
103107
#align add_action.orbit.coe_vadd AddAction.orbit.coe_vadd
104108

105-
variable (M) (α)
109+
variable (M)
110+
111+
@[to_additive]
112+
theorem orbit_eq_univ [IsPretransitive M α] (a : α) : orbit M a = Set.univ :=
113+
(surjective_smul M a).range_eq
114+
#align mul_action.orbit_eq_univ MulAction.orbit_eq_univ
115+
#align add_action.orbit_eq_univ AddAction.orbit_eq_univ
116+
117+
end Orbit
118+
119+
section FixedPoints
106120

107121
/-- The set of elements fixed under the whole action. -/
108122
@[to_additive "The set of elements fixed under the whole action."]
@@ -111,21 +125,25 @@ def fixedPoints : Set α :=
111125
#align mul_action.fixed_points MulAction.fixedPoints
112126
#align add_action.fixed_points AddAction.fixedPoints
113127

128+
variable {M}
129+
114130
/-- `fixedBy m` is the set of elements fixed by `m`. -/
115131
@[to_additive "`fixedBy m` is the set of elements fixed by `m`."]
116132
def fixedBy (m : M) : Set α :=
117133
{ x | m • x = x }
118134
#align mul_action.fixed_by MulAction.fixedBy
119135
#align add_action.fixed_by AddAction.fixedBy
120136

137+
variable (M)
138+
121139
@[to_additive]
122-
theorem fixed_eq_iInter_fixedBy : fixedPoints M α = ⋂ m : M, fixedBy M α m :=
140+
theorem fixed_eq_iInter_fixedBy : fixedPoints M α = ⋂ m : M, fixedBy α m :=
123141
Set.ext fun _ =>
124142
fun hx => Set.mem_iInter.2 fun m => hx m, fun hx m => (Set.mem_iInter.1 hx m : _)⟩
125143
#align mul_action.fixed_eq_Inter_fixed_by MulAction.fixed_eq_iInter_fixedBy
126144
#align add_action.fixed_eq_Inter_fixed_by AddAction.fixed_eq_iInter_fixedBy
127145

128-
variable {M}
146+
variable {M α}
129147

130148
@[to_additive (attr := simp)]
131149
theorem mem_fixedPoints {a : α} : a ∈ fixedPoints M α ↔ ∀ m : M, m • a = a :=
@@ -134,7 +152,7 @@ theorem mem_fixedPoints {a : α} : a ∈ fixedPoints M α ↔ ∀ m : M, m • a
134152
#align add_action.mem_fixed_points AddAction.mem_fixedPoints
135153

136154
@[to_additive (attr := simp)]
137-
theorem mem_fixedBy {m : M} {a : α} : a ∈ fixedBy M α m ↔ m • a = a :=
155+
theorem mem_fixedBy {m : M} {a : α} : a ∈ fixedBy α m ↔ m • a = a :=
138156
Iff.rfl
139157
#align mul_action.mem_fixed_by MulAction.mem_fixedBy
140158
#align add_action.mem_fixed_by AddAction.mem_fixedBy
@@ -148,36 +166,6 @@ theorem mem_fixedPoints' {a : α} : a ∈ fixedPoints M α ↔ ∀ a', a' ∈ or
148166
#align mul_action.mem_fixed_points' MulAction.mem_fixedPoints'
149167
#align add_action.mem_fixed_points' AddAction.mem_fixedPoints'
150168

151-
variable (M) {α}
152-
153-
/-- The stabilizer of a point `a` as a submonoid of `M`. -/
154-
@[to_additive "The stabilizer of m point `a` as an additive submonoid of `M`."]
155-
def Stabilizer.submonoid (a : α) : Submonoid M where
156-
carrier := { m | m • a = a }
157-
one_mem' := one_smul _ a
158-
mul_mem' {m m'} (ha : m • a = a) (hb : m' • a = a) :=
159-
show (m * m') • a = a by rw [← smul_smul, hb, ha]
160-
#align mul_action.stabilizer.submonoid MulAction.Stabilizer.submonoid
161-
#align add_action.stabilizer.add_submonoid AddAction.Stabilizer.addSubmonoid
162-
163-
@[to_additive (attr := simp)]
164-
theorem mem_stabilizer_submonoid_iff {a : α} {m : M} : m ∈ Stabilizer.submonoid M a ↔ m • a = a :=
165-
Iff.rfl
166-
#align mul_action.mem_stabilizer_submonoid_iff MulAction.mem_stabilizer_submonoid_iff
167-
#align add_action.mem_stabilizer_add_submonoid_iff AddAction.mem_stabilizer_addSubmonoid_iff
168-
169-
@[to_additive]
170-
instance [DecidableEq α] (a : α) : DecidablePred (· ∈ Stabilizer.submonoid M a) :=
171-
fun _ => inferInstanceAs <| Decidable (_ = _)
172-
173-
@[to_additive]
174-
theorem orbit_eq_univ [IsPretransitive M α] (a : α) : orbit M a = Set.univ :=
175-
(surjective_smul M a).range_eq
176-
#align mul_action.orbit_eq_univ MulAction.orbit_eq_univ
177-
#align add_action.orbit_eq_univ AddAction.orbit_eq_univ
178-
179-
variable {M}
180-
181169
@[to_additive mem_fixedPoints_iff_card_orbit_eq_one]
182170
theorem mem_fixedPoints_iff_card_orbit_eq_one {a : α} [Fintype (orbit M a)] :
183171
a ∈ fixedPoints M α ↔ Fintype.card (orbit M a) = 1 := by
@@ -192,34 +180,56 @@ theorem mem_fixedPoints_iff_card_orbit_eq_one {a : α} [Fintype (orbit M a)] :
192180
#align mul_action.mem_fixed_points_iff_card_orbit_eq_one MulAction.mem_fixedPoints_iff_card_orbit_eq_one
193181
#align add_action.mem_fixed_points_iff_card_orbit_eq_zero AddAction.mem_fixedPoints_iff_card_orbit_eq_one
194182

195-
end MulAction
183+
end FixedPoints
196184

197-
namespace MulAction
185+
section Stabilizers
198186

199-
variable (G : Type u) {α : Type v} [Group G] [MulAction G α]
187+
variable {α}
200188

201-
/-- The stabilizer of an element under an action, i.e. what sends the element to itself.
202-
A subgroup. -/
203-
@[to_additive
204-
"The stabilizer of an element under an action, i.e. what sends the element to itself.
205-
An additive subgroup."]
206-
def stabilizer (a : α) : Subgroup G :=
207-
{ Stabilizer.submonoid G a with
208-
inv_mem' := fun {m} (ha : m • a = a) => show m⁻¹ • a = a by rw [inv_smul_eq_iff, ha] }
209-
#align mul_action.stabilizer MulAction.stabilizer
210-
#align add_action.stabilizer AddAction.stabilizer
189+
/-- The stabilizer of a point `a` as a submonoid of `M`. -/
190+
@[to_additive "The stabilizer of a point `a` as an additive submonoid of `M`."]
191+
def stabilizerSubmonoid (a : α) : Submonoid M where
192+
carrier := { m | m • a = a }
193+
one_mem' := one_smul _ a
194+
mul_mem' {m m'} (ha : m • a = a) (hb : m' • a = a) :=
195+
show (m * m') • a = a by rw [← smul_smul, hb, ha]
196+
#align mul_action.stabilizer.submonoid MulAction.stabilizerSubmonoid
197+
#align add_action.stabilizer.add_submonoid AddAction.stabilizerAddSubmonoid
211198

212-
variable {G}
199+
variable {M}
200+
201+
@[to_additive]
202+
instance [DecidableEq α] (a : α) : DecidablePred (· ∈ stabilizerSubmonoid M a) :=
203+
fun _ => inferInstanceAs <| Decidable (_ = _)
213204

214205
@[to_additive (attr := simp)]
215-
theorem mem_stabilizer_iff {g : G} {a : α} : gstabilizer G a ↔ g • a = a :=
206+
theorem mem_stabilizerSubmonoid_iff {a : α} {m : M} : mstabilizerSubmonoid M a ↔ m • a = a :=
216207
Iff.rfl
217-
#align mul_action.mem_stabilizer_iff MulAction.mem_stabilizer_iff
218-
#align add_action.mem_stabilizer_iff AddAction.mem_stabilizer_iff
208+
#align mul_action.mem_stabilizer_submonoid_iff MulAction.mem_stabilizerSubmonoid_iff
209+
#align add_action.mem_stabilizer_add_submonoid_iff AddAction.mem_stabilizerAddSubmonoid_iff
219210

220-
@[to_additive]
221-
instance [DecidableEq α] (a : α) : DecidablePred (· ∈ stabilizer G a) :=
222-
fun _ => inferInstanceAs <| Decidable (_ = _)
211+
end Stabilizers
212+
213+
end MulAction
214+
215+
/-- `smul` by a `k : M` over a ring is injective, if `k` is not a zero divisor.
216+
The general theory of such `k` is elaborated by `IsSMulRegular`.
217+
The typeclass that restricts all terms of `M` to have this property is `NoZeroSMulDivisors`. -/
218+
theorem smul_cancel_of_non_zero_divisor {M R : Type*} [Monoid M] [NonUnitalNonAssocRing R]
219+
[DistribMulAction M R] (k : M) (h : ∀ x : R, k • x = 0 → x = 0) {a b : R} (h' : k • a = k • b) :
220+
a = b := by
221+
rw [← sub_eq_zero]
222+
refine' h _ _
223+
rw [smul_sub, h', sub_self]
224+
#align smul_cancel_of_non_zero_divisor smul_cancel_of_non_zero_divisor
225+
226+
namespace MulAction
227+
228+
variable (G : Type u) [Group G] (α : Type v) [MulAction G α]
229+
230+
section Orbit
231+
232+
variable {G α}
223233

224234
@[to_additive (attr := simp)]
225235
theorem smul_orbit (g : G) (a : α) : g • orbit G a = orbit G a :=
@@ -254,8 +264,6 @@ theorem orbit_eq_iff {a b : α} : orbit G a = orbit G b ↔ a ∈ orbit G b :=
254264
#align mul_action.orbit_eq_iff MulAction.orbit_eq_iff
255265
#align add_action.orbit_eq_iff AddAction.orbit_eq_iff
256266

257-
variable (G)
258-
259267
@[to_additive]
260268
theorem mem_orbit_smul (g : G) (a : α) : a ∈ orbit G (g • a) := by
261269
simp only [orbit_smul, mem_orbit_self]
@@ -268,7 +276,7 @@ theorem smul_mem_orbit_smul (g h : G) (a : α) : g • a ∈ orbit G (h • a) :
268276
#align mul_action.smul_mem_orbit_smul MulAction.smul_mem_orbit_smul
269277
#align add_action.vadd_mem_orbit_vadd AddAction.vadd_mem_orbit_vadd
270278

271-
variable (α)
279+
variable (G α)
272280

273281
/-- The relation 'in the same orbit'. -/
274282
@[to_additive "The relation 'in the same orbit'."]
@@ -420,7 +428,34 @@ def selfEquivSigmaOrbits : α ≃ Σω : Ω, orbit G ω.out' :=
420428
#align mul_action.self_equiv_sigma_orbits MulAction.selfEquivSigmaOrbits
421429
#align add_action.self_equiv_sigma_orbits AddAction.selfEquivSigmaOrbits
422430

423-
variable {G α}
431+
end Orbit
432+
433+
section Stabilizer
434+
435+
variable {α}
436+
437+
/-- The stabilizer of an element under an action, i.e. what sends the element to itself.
438+
A subgroup. -/
439+
@[to_additive
440+
"The stabilizer of an element under an action, i.e. what sends the element to itself.
441+
An additive subgroup."]
442+
def stabilizer (a : α) : Subgroup G :=
443+
{ stabilizerSubmonoid G a with
444+
inv_mem' := fun {m} (ha : m • a = a) => show m⁻¹ • a = a by rw [inv_smul_eq_iff, ha] }
445+
#align mul_action.stabilizer MulAction.stabilizer
446+
#align add_action.stabilizer AddAction.stabilizer
447+
448+
variable {G}
449+
450+
@[to_additive]
451+
instance [DecidableEq α] (a : α) : DecidablePred (· ∈ stabilizer G a) :=
452+
fun _ => inferInstanceAs <| Decidable (_ = _)
453+
454+
@[to_additive (attr := simp)]
455+
theorem mem_stabilizer_iff {a : α} {g : G} : g ∈ stabilizer G a ↔ g • a = a :=
456+
Iff.rfl
457+
#align mul_action.mem_stabilizer_iff MulAction.mem_stabilizer_iff
458+
#align add_action.mem_stabilizer_iff AddAction.mem_stabilizer_iff
424459

425460
/-- If the stabilizer of `a` is `S`, then the stabilizer of `g • a` is `gSg⁻¹`. -/
426461
theorem stabilizer_smul_eq_stabilizer_map_conj (g : G) (a : α) :
@@ -440,11 +475,13 @@ noncomputable def stabilizerEquivStabilizerOfOrbitRel {a b : α} (h : (orbitRel
440475
(MulEquiv.subgroupCongr this).trans ((MulAut.conj g).subgroupMap <| stabilizer G b).symm
441476
#align mul_action.stabilizer_equiv_stabilizer_of_orbit_rel MulAction.stabilizerEquivStabilizerOfOrbitRel
442477

478+
end Stabilizer
479+
443480
end MulAction
444481

445482
namespace AddAction
446483

447-
variable (G : Type u) (α : Type v) [AddGroup G] [AddAction G α]
484+
variable (G : Type u) [AddGroup G] (α : Type v) [AddAction G α]
448485

449486
/-- If the stabilizer of `x` is `S`, then the stabilizer of `g +ᵥ x` is `g + S + (-g)`. -/
450487
theorem stabilizer_vadd_eq_stabilizer_map_conj (g : G) (a : α) :
@@ -466,14 +503,3 @@ noncomputable def stabilizerEquivStabilizerOfOrbitRel {a b : α} (h : (orbitRel
466503
#align add_action.stabilizer_equiv_stabilizer_of_orbit_rel AddAction.stabilizerEquivStabilizerOfOrbitRel
467504

468505
end AddAction
469-
470-
/-- `smul` by a `k : M` over a ring is injective, if `k` is not a zero divisor.
471-
The general theory of such `k` is elaborated by `IsSMulRegular`.
472-
The typeclass that restricts all terms of `M` to have this property is `NoZeroSMulDivisors`. -/
473-
theorem smul_cancel_of_non_zero_divisor {M R : Type*} [Monoid M] [NonUnitalNonAssocRing R]
474-
[DistribMulAction M R] (k : M) (h : ∀ x : R, k • x = 0 → x = 0) {a b : R} (h' : k • a = k • b) :
475-
a = b := by
476-
rw [← sub_eq_zero]
477-
refine' h _ _
478-
rw [smul_sub, h', sub_self]
479-
#align smul_cancel_of_non_zero_divisor smul_cancel_of_non_zero_divisor

Mathlib/GroupTheory/GroupAction/Quotient.lean

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -307,9 +307,9 @@ theorem card_eq_sum_card_group_div_card_stabilizer [Fintype α] [Fintype β] [Fi
307307
"**Burnside's lemma** : a (noncomputable) bijection between the disjoint union of all
308308
`{x ∈ X | g • x = x}` for `g ∈ G` and the product `G × X/G`, where `G` is an additive group
309309
acting on `X` and `X/G`denotes the quotient of `X` by the relation `orbitRel G X`. "]
310-
noncomputable def sigmaFixedByEquivOrbitsProdGroup : (Σa : α, fixedBy α β a) ≃ Ω × α :=
310+
noncomputable def sigmaFixedByEquivOrbitsProdGroup : (Σa : α, fixedBy β a) ≃ Ω × α :=
311311
calc
312-
(Σa : α, fixedBy α β a) ≃ { ab : α × β // ab.1 • ab.2 = ab.2 } :=
312+
(Σa : α, fixedBy β a) ≃ { ab : α × β // ab.1 • ab.2 = ab.2 } :=
313313
(Equiv.subtypeProdEquivSigmaSubtype _).symm
314314
_ ≃ { ba : β × α // ba.2 • ba.1 = ba.1 } := (Equiv.prodComm α β).subtypeEquiv fun _ => Iff.rfl
315315
_ ≃ Σb : β, stabilizer α b :=
@@ -333,8 +333,8 @@ elements fixed by each `g ∈ G` is the number of orbits. -/
333333
@[to_additive
334334
"**Burnside's lemma** : given a finite additive group `G` acting on a set `X`,
335335
the average number of elements fixed by each `g ∈ G` is the number of orbits. "]
336-
theorem sum_card_fixedBy_eq_card_orbits_mul_card_group [Fintype α] [∀ a, Fintype <| fixedBy α β a]
337-
[Fintype Ω] : (∑ a : α, Fintype.card (fixedBy α β a)) = Fintype.card Ω * Fintype.card α := by
336+
theorem sum_card_fixedBy_eq_card_orbits_mul_card_group [Fintype α] [∀ a : α, Fintype <| fixedBy β a]
337+
[Fintype Ω] : (∑ a : α, Fintype.card (fixedBy β a)) = Fintype.card Ω * Fintype.card α := by
338338
rw [← Fintype.card_prod, ← Fintype.card_sigma,
339339
Fintype.card_congr (sigmaFixedByEquivOrbitsProdGroup α β)]
340340
#align mul_action.sum_card_fixed_by_eq_card_orbits_mul_card_group MulAction.sum_card_fixedBy_eq_card_orbits_mul_card_group
@@ -426,7 +426,7 @@ theorem card_comm_eq_card_conjClasses_mul_card (G : Type*) [Group G] :
426426
-- Porting note: Changed `calc` proof into a `rw` proof.
427427
rw [card_congr (Equiv.subtypeProdEquivSigmaSubtype Commute), card_sigma,
428428
sum_equiv ConjAct.toConjAct.toEquiv (fun a ↦ card { b // Commute a b })
429-
(fun g ↦ card (MulAction.fixedBy (ConjAct G) G g))
429+
(fun g ↦ card (MulAction.fixedBy G g))
430430
fun g ↦ card_congr' <| congr_arg _ <| funext fun h ↦ mul_inv_eq_iff_eq_mul.symm.to_eq,
431431
MulAction.sum_card_fixedBy_eq_card_orbits_mul_card_group]
432432
congr 1; apply card_congr'; congr; ext;

Mathlib/GroupTheory/GroupAction/SubMulAction.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,9 +331,9 @@ lemma orbit_of_sub_mul {p : SubMulAction R M} (m : p) :
331331
-/
332332
/-- Stabilizers in monoid SubMulAction coincide with stabilizers in the ambient space -/
333333
theorem stabilizer_of_subMul.submonoid {p : SubMulAction R M} (m : p) :
334-
MulAction.Stabilizer.submonoid R m = MulAction.Stabilizer.submonoid R (m : M) := by
334+
MulAction.stabilizerSubmonoid R m = MulAction.stabilizerSubmonoid R (m : M) := by
335335
ext
336-
simp only [MulAction.mem_stabilizer_submonoid_iff, ← SubMulAction.val_smul, SetLike.coe_eq_coe]
336+
simp only [MulAction.mem_stabilizerSubmonoid_iff, ← SubMulAction.val_smul, SetLike.coe_eq_coe]
337337
#align sub_mul_action.stabilizer_of_sub_mul.submonoid SubMulAction.stabilizer_of_subMul.submonoid
338338

339339
end MulActionMonoid

Mathlib/GroupTheory/PGroup.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ theorem card_modEq_card_fixedPoints [Fintype (fixedPoints G α)] :
198198
Eq.symm
199199
(Finset.sum_bij_ne_zero (fun a _ _ => Quotient.mk'' a.1) (fun _ _ _ => Finset.mem_univ _)
200200
(fun a₁ a₂ _ _ _ _ h =>
201-
Subtype.eq ((mem_fixedPoints' α).mp a₂.2 a₁.1 (Quotient.exact' h)))
201+
Subtype.eq (mem_fixedPoints'.mp a₂.2 a₁.1 (Quotient.exact' h)))
202202
(fun b => Quotient.inductionOn' b fun b _ hb => _) fun a ha _ => by
203203
rw [key, mem_fixedPoints_iff_card_orbit_eq_one.mp a.2])
204204
obtain ⟨k, hk⟩ := hG.card_orbit b

Mathlib/GroupTheory/Sylow.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ namespace Sylow
503503
theorem mem_fixedPoints_mul_left_cosets_iff_mem_normalizer {H : Subgroup G} [Finite (H : Set G)]
504504
{x : G} : (x : G ⧸ H) ∈ MulAction.fixedPoints H (G ⧸ H) ↔ x ∈ normalizer H :=
505505
fun hx =>
506-
have ha : ∀ {y : G ⧸ H}, y ∈ orbit H (x : G ⧸ H) → y = x := (mem_fixedPoints' _).1 hx _
506+
have ha : ∀ {y : G ⧸ H}, y ∈ orbit H (x : G ⧸ H) → y = x := mem_fixedPoints'.1 hx _
507507
(inv_mem_iff (G := G)).1
508508
(mem_normalizer_fintype fun n (hn : n ∈ H) =>
509509
have : (n⁻¹ * x)⁻¹ * x ∈ H := QuotientGroup.eq.1 (ha ⟨⟨n⁻¹, inv_mem hn⟩, rfl⟩)
@@ -512,7 +512,7 @@ theorem mem_fixedPoints_mul_left_cosets_iff_mem_normalizer {H : Subgroup G} [Fin
512512
convert this
513513
rw [inv_inv]),
514514
fun hx : ∀ n : G, n ∈ H ↔ x * n * x⁻¹ ∈ H =>
515-
(mem_fixedPoints' _).2 fun y =>
515+
mem_fixedPoints'.2 fun y =>
516516
Quotient.inductionOn' y fun y hy =>
517517
QuotientGroup.eq.2
518518
(let ⟨⟨b, hb₁⟩, hb₂⟩ := hy

0 commit comments

Comments
 (0)