-
Notifications
You must be signed in to change notification settings - Fork 1.3k
[Merged by Bors] - feat: Tannaka duality for finite groups #22176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 34 commits
2fed255
3f05321
1a057b3
7bbbf3c
e15d912
d762416
7d4db7c
80f3a63
90d2c06
410737c
f974f9c
ca4846e
677b3fd
0fa0947
0c859d2
edc6a06
42b313f
4c844f3
8a6f4d5
34be1f6
8ffe5c3
6ba5b52
5938914
98edc4b
098f429
062811e
71c03d7
8e38f7b
b2e6a93
b57fb55
232d0dd
f7e6293
cebbec0
da6e937
8db35b4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -14,7 +14,7 @@ The theorem can be formulated as follows: for any integral domain `k`, a finite | |||||||
| recovered from `FDRep k G`, the monoidal category of finite dimensional `k`-linear representations | ||||||||
| of `G`, and the monoidal forgetful functor `forget : FDRep k G ⥤ FGModuleCat k`. | ||||||||
|
|
||||||||
| More specifically, the main result is the isomorphism `equiv : G ≃* Aut (forget k G)`. | ||||||||
| The main result is the isomorphism `equiv : G ≃* Aut (forget k G)`. | ||||||||
|
|
||||||||
| ## Reference | ||||||||
|
|
||||||||
|
|
@@ -99,11 +99,9 @@ def leftRegular : Representation k G (G → k) where | |||||||
| @[simp] | ||||||||
| lemma leftRegular_apply (s t : G) (f : G → k) : leftRegular s f t = f (s⁻¹ * t) := rfl | ||||||||
|
|
||||||||
| variable [Finite G] | ||||||||
|
|
||||||||
| /-- The right regular representation `rightRegular` on `G → k` as a `FDRep k G`. -/ | ||||||||
| @[simp] | ||||||||
| def rightFDRep : FDRep k G := FDRep.of rightRegular | ||||||||
| def rightFDRep [Finite G] : FDRep k G := FDRep.of rightRegular | ||||||||
|
|
||||||||
| end definitions | ||||||||
|
|
||||||||
|
|
@@ -151,6 +149,84 @@ def algHomOfRightFDRepComp (η : Aut (forget k G)) : (G → k) →ₐ[k] (G → | |||||||
| apply_fun (fun x ↦ (x.hom.app rightFDRep).hom (1 : G → k)) at this | ||||||||
| exact this | ||||||||
|
|
||||||||
| /-- For `v : X` and `G` a finite group, the `G`-equivariant linear map from the right | ||||||||
| regular representation `rightFDRep` to `X` sending `single 1 1` to `v`. -/ | ||||||||
| @[simps] | ||||||||
| def sumSMulInv [Fintype G] {X : FDRep k G} (v : X) : (G → k) →ₗ[k] X where | ||||||||
| toFun f := ∑ s : G, (f s) • (X.ρ s⁻¹ v) | ||||||||
| map_add' _ _ := by | ||||||||
| simp [add_smul, sum_add_distrib] | ||||||||
| map_smul' _ _ := by | ||||||||
| simp [smul_sum, smul_smul] | ||||||||
|
|
||||||||
| omit [Finite G] in | ||||||||
| @[simp] | ||||||||
| lemma sumSMulInv_single_id [Fintype G] [DecidableEq G] {X : FDRep k G} (v : X) : | ||||||||
| ∑ s : G, (single 1 1 : G → k) s • (X.ρ s⁻¹) v = v := by | ||||||||
|
Comment on lines
+162
to
+163
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why are you not using
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Because |
||||||||
| rw [Fintype.sum_eq_single 1] | ||||||||
| · simp | ||||||||
| · simp_all | ||||||||
|
|
||||||||
| /-- For `v : X` and `G` a finite group, the representation morphism from the right | ||||||||
| regular representation `rightFDRep` to `X` sending `single 1 1` to `v`. -/ | ||||||||
| @[simps] | ||||||||
| def ofRightFDRep [Fintype G] (X : FDRep k G) (v : X) : rightFDRep ⟶ X where | ||||||||
| hom := ofHom (sumSMulInv v) | ||||||||
| comm t := by | ||||||||
| ext f | ||||||||
| let φ_term (X : FDRep k G) (f : G → k) v s := (f s) • (X.ρ s⁻¹ v) | ||||||||
| have := sum_map univ (mulRightEmbedding t⁻¹) (φ_term X (rightRegular t f) v) | ||||||||
| simpa [φ_term] using this | ||||||||
|
|
||||||||
| lemma toRightFDRepComp_injective {η₁ η₂ : Aut (forget k G)} | ||||||||
| (h : η₁.hom.hom.app rightFDRep = η₂.hom.hom.app rightFDRep) : η₁ = η₂ := by | ||||||||
| have := Fintype.ofFinite G | ||||||||
| classical | ||||||||
| ext X v | ||||||||
| have h1 := η₁.hom.hom.naturality (ofRightFDRep X v) | ||||||||
| have h2 := η₂.hom.hom.naturality (ofRightFDRep X v) | ||||||||
| rw [h, ← h2] at h1 | ||||||||
| simpa using congr(Hom.hom $h1 (single 1 1)) | ||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
(untested, you might also try without the parentheses) |
||||||||
|
|
||||||||
| /-- `leftRegular` as a morphism `rightFDRep k G ⟶ rightFDRep k G` in `FDRep k G`. -/ | ||||||||
| def leftRegularFDRepHom (s : G) : End (rightFDRep : FDRep k G) where | ||||||||
| hom := ofHom (leftRegular s) | ||||||||
| comm _ := by | ||||||||
| ext f | ||||||||
| funext _ | ||||||||
| apply congrArg f | ||||||||
| exact mul_assoc .. | ||||||||
|
|
||||||||
| lemma toRightFDRepComp_in_rightRegular [IsDomain k] (η : Aut (forget k G)) : | ||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Note to myself: as commented in a previous PR, this works for an "indecomposable (commutative) semiring" k (a typeclass I'm about to introduce). TODO: allow Semiring in FDRep. |
||||||||
| ∃ (s : G), (η.hom.hom.app rightFDRep).hom = rightRegular s := by | ||||||||
| classical | ||||||||
| obtain ⟨s, hs⟩ := ((evalAlgHom _ _ 1).comp (algHomOfRightFDRepComp η)).eq_piEvalAlgHom | ||||||||
| refine ⟨s, Basis.ext (basisFun k G) (fun u ↦ ?_)⟩ | ||||||||
| simp only [rightFDRep, forget_obj] | ||||||||
| ext t | ||||||||
| have nat := η.hom.hom.naturality (leftRegularFDRepHom t⁻¹) | ||||||||
| calc | ||||||||
| _ = leftRegular t⁻¹ ((η.hom.hom.app rightFDRep).hom (single u 1)) 1 := by simp | ||||||||
| _ = (η.hom.hom.app rightFDRep).hom (leftRegular t⁻¹ (single u 1)) 1 := | ||||||||
| congrFun congr((Hom.hom $nat (single u 1))).symm 1 | ||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
(untested)
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For some reason this one doesn't work without |
||||||||
| _ = evalAlgHom _ _ s (leftRegular t⁻¹ (single u 1)) := | ||||||||
| congr($hs ((leftRegular t⁻¹) (single u 1))) | ||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||
| _ = _ := by | ||||||||
| by_cases u = t * s <;> simp_all [single_apply] | ||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||
|
|
||||||||
| lemma equivHom_surjective [IsDomain k] : Function.Surjective (equivHom k G) := by | ||||||||
| intro η | ||||||||
| obtain ⟨s, h⟩ := toRightFDRepComp_in_rightRegular η | ||||||||
| exact ⟨s, toRightFDRepComp_injective (hom_ext h.symm)⟩ | ||||||||
|
|
||||||||
| variable (k G) in | ||||||||
| /-- Tannaka duality for finite groups: | ||||||||
|
|
||||||||
| A finite group `G` is isomorphic to `Aut (forget k G)`, where `k` is any integral domain, | ||||||||
| and `forget k G` is the monoidal forgetful functor `FDRep k G ⥤ FGModuleCat k G`. -/ | ||||||||
| def equiv [IsDomain k] : G ≃* Aut (forget k G) := | ||||||||
| MulEquiv.ofBijective (equivHom k G) ⟨equivHom_injective, equivHom_surjective⟩ | ||||||||
|
|
||||||||
| end FiniteGroup | ||||||||
|
|
||||||||
| end TannakaDuality | ||||||||
|
|
||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.