@@ -14,7 +14,7 @@ The theorem can be formulated as follows: for any integral domain `k`, a finite
1414recovered from `FDRep k G`, the monoidal category of finite dimensional `k`-linear representations
1515of `G`, and the monoidal forgetful functor `forget : FDRep k G ⥤ FGModuleCat k`.
1616
17- More specifically, the main result is the isomorphism `equiv : G ≃* Aut (forget k G)`.
17+ The main result is the isomorphism `equiv : G ≃* Aut (forget k G)`.
1818
1919## Reference
2020
@@ -99,11 +99,9 @@ def leftRegular : Representation k G (G → k) where
9999@[simp]
100100lemma leftRegular_apply (s t : G) (f : G → k) : leftRegular s f t = f (s⁻¹ * t) := rfl
101101
102- variable [Finite G]
103-
104102/-- The right regular representation `rightRegular` on `G → k` as a `FDRep k G`. -/
105103@[simp]
106- def rightFDRep : FDRep k G := FDRep.of rightRegular
104+ def rightFDRep [Finite G] : FDRep k G := FDRep.of rightRegular
107105
108106end definitions
109107
@@ -151,6 +149,81 @@ def algHomOfRightFDRepComp (η : Aut (forget k G)) : (G → k) →ₐ[k] (G →
151149 apply_fun (fun x ↦ (x.hom.app rightFDRep).hom (1 : G → k)) at this
152150 exact this
153151
152+ /-- For `v : X` and `G` a finite group, the `G`-equivariant linear map from the right
153+ regular representation `rightFDRep` to `X` sending `single 1 1` to `v`. -/
154+ @[simps]
155+ def sumSMulInv [Fintype G] {X : FDRep k G} (v : X) : (G → k) →ₗ[k] X where
156+ toFun f := ∑ s : G, (f s) • (X.ρ s⁻¹ v)
157+ map_add' _ _ := by simp [add_smul, sum_add_distrib]
158+ map_smul' _ _ := by simp [smul_sum, smul_smul]
159+
160+ omit [Finite G] in
161+ @[simp]
162+ lemma sumSMulInv_single_id [Fintype G] [DecidableEq G] {X : FDRep k G} (v : X) :
163+ ∑ s : G, (single 1 1 : G → k) s • (X.ρ s⁻¹) v = v := by
164+ rw [Fintype.sum_eq_single 1 ]
165+ · simp
166+ · simp_all
167+
168+ /-- For `v : X` and `G` a finite group, the representation morphism from the right
169+ regular representation `rightFDRep` to `X` sending `single 1 1` to `v`. -/
170+ @[simps]
171+ def ofRightFDRep [Fintype G] (X : FDRep k G) (v : X) : rightFDRep ⟶ X where
172+ hom := ofHom (sumSMulInv v)
173+ comm t := by
174+ ext f
175+ let φ_term (X : FDRep k G) (f : G → k) v s := (f s) • (X.ρ s⁻¹ v)
176+ have := sum_map univ (mulRightEmbedding t⁻¹) (φ_term X (rightRegular t f) v)
177+ simpa [φ_term] using this
178+
179+ lemma toRightFDRepComp_injective {η₁ η₂ : Aut (forget k G)}
180+ (h : η₁.hom.hom.app rightFDRep = η₂.hom.hom.app rightFDRep) : η₁ = η₂ := by
181+ have := Fintype.ofFinite G
182+ classical
183+ ext X v
184+ have h1 := η₁.hom.hom.naturality (ofRightFDRep X v)
185+ have h2 := η₂.hom.hom.naturality (ofRightFDRep X v)
186+ rw [h, ← h2] at h1
187+ simpa using congr(($h1).hom (single 1 1 ))
188+
189+ /-- `leftRegular` as a morphism `rightFDRep k G ⟶ rightFDRep k G` in `FDRep k G`. -/
190+ def leftRegularFDRepHom (s : G) : End (rightFDRep : FDRep k G) where
191+ hom := ofHom (leftRegular s)
192+ comm _ := by
193+ ext f
194+ funext _
195+ apply congrArg f
196+ exact mul_assoc ..
197+
198+ lemma toRightFDRepComp_in_rightRegular [IsDomain k] (η : Aut (forget k G)) :
199+ ∃ (s : G), (η.hom.hom.app rightFDRep).hom = rightRegular s := by
200+ classical
201+ obtain ⟨s, hs⟩ := ((evalAlgHom _ _ 1 ).comp (algHomOfRightFDRepComp η)).eq_piEvalAlgHom
202+ refine ⟨s, Basis.ext (basisFun k G) (fun u ↦ ?_)⟩
203+ simp only [rightFDRep, forget_obj]
204+ ext t
205+ have nat := η.hom.hom.naturality (leftRegularFDRepHom t⁻¹)
206+ calc
207+ _ = leftRegular t⁻¹ ((η.hom.hom.app rightFDRep).hom (single u 1 )) 1 := by simp
208+ _ = (η.hom.hom.app rightFDRep).hom (leftRegular t⁻¹ (single u 1 )) 1 :=
209+ congrFun congr(($nat.symm).hom (single u 1 )) 1
210+ _ = evalAlgHom _ _ s (leftRegular t⁻¹ (single u 1 )) :=
211+ congr($hs (leftRegular t⁻¹ (single u 1 )))
212+ _ = _ := by by_cases u = t * s <;> simp_all [single_apply]
213+
214+ lemma equivHom_surjective [IsDomain k] : Function.Surjective (equivHom k G) := by
215+ intro η
216+ obtain ⟨s, h⟩ := toRightFDRepComp_in_rightRegular η
217+ exact ⟨s, toRightFDRepComp_injective (hom_ext h.symm)⟩
218+
219+ variable (k G) in
220+ /-- Tannaka duality for finite groups:
221+
222+ A finite group `G` is isomorphic to `Aut (forget k G)`, where `k` is any integral domain,
223+ and `forget k G` is the monoidal forgetful functor `FDRep k G ⥤ FGModuleCat k G`. -/
224+ def equiv [IsDomain k] : G ≃* Aut (forget k G) :=
225+ MulEquiv.ofBijective (equivHom k G) ⟨equivHom_injective, equivHom_surjective⟩
226+
154227end FiniteGroup
155228
156229end TannakaDuality
0 commit comments