# mathlibdocumentation

representation_theory.Rep

# Rep k G is the category of k-linear representations of G. #

If V : Rep k G, there is a coercion that allows you to treat V as a type, and this type comes equipped with a module k V instance. Also V.ρ gives the homomorphism G →* (V →ₗ[k] V).

Conversely, given a homomorphism ρ : G →* (V →ₗ[k] V), you can construct the bundled representation as Rep.of ρ.

We construct the categorical equivalence Rep k G ≌ Module (monoid_algebra k G). We verify that Rep k G is a k-linear abelian symmetric monoidal category with all (co)limits.

@[protected, instance]
def Rep.has_colimits (k G : Type u) [ring k] [monoid G] :
@[protected, instance]
def Rep.preadditive (k G : Type u) [ring k] [monoid G] :
@[protected, instance]
noncomputable def Rep.abelian (k G : Type u) [ring k] [monoid G] :
@[protected, instance]
def Rep.large_category (k G : Type u) [ring k] [monoid G] :
@[protected, instance]
def Rep.has_limits (k G : Type u) [ring k] [monoid G] :
@[reducible]
def Rep (k G : Type u) [ring k] [monoid G] :
Type (u+1)

The category of k-linear representations of a monoid G.

@[protected, instance]
def Rep.concrete_category (k G : Type u) [ring k] [monoid G] :
@[protected, instance]
def Rep.category_theory.linear (k G : Type u) [comm_ring k] [monoid G] :
(Rep k G)
Equations
@[protected, instance]
def Rep.has_coe_to_sort {k G : Type u} [comm_ring k] [monoid G] :
Equations
@[protected, instance]
def Rep.add_comm_group {k G : Type u} [comm_ring k] [monoid G] (V : Rep k G) :
Equations
@[protected, instance]
def Rep.module {k G : Type u} [comm_ring k] [monoid G] (V : Rep k G) :
V
Equations
def Rep.ρ {k G : Type u} [comm_ring k] [monoid G] (V : Rep k G) :
V

Specialize the existing Action.ρ, changing the type to representation k G V.

Equations
def Rep.of {k G : Type u} [comm_ring k] [monoid G] {V : Type u} [ V] (ρ : G →* V →ₗ[k] V) :
Rep k G

Lift an unbundled representation to Rep.

Equations
• = {V := V _inst_4, ρ := ρ}
@[simp]
theorem Rep.coe_of {k G : Type u} [comm_ring k] [monoid G] {V : Type u} [ V] (ρ : G →* V →ₗ[k] V) :
(Rep.of ρ) = V
@[simp]
theorem Rep.of_ρ {k G : Type u} [comm_ring k] [monoid G] {V : Type u} [ V] (ρ : G →* V →ₗ[k] V) :
(Rep.of ρ).ρ = ρ
@[simp]
theorem Rep.Action_ρ_eq_ρ {k G : Type u} [comm_ring k] [monoid G] {A : Rep k G} :
A.ρ = A.ρ
theorem Rep.of_ρ_apply {k G : Type u} [comm_ring k] [monoid G] {V : Type u} [ V] (ρ : V) (g : (Mon.of G)) :
((Rep.of ρ).ρ) g = ρ g

Allows us to apply lemmas about the underlying ρ, which would take an element g : G rather than g : Mon.of G as an argument.

def Rep.trivial (k G : Type u) [comm_ring k] [monoid G] (V : Type u) [ V] :
Rep k G

The trivial k-linear G-representation on a k-module V.

Equations
• G V =
theorem Rep.trivial_def {k G : Type u} [comm_ring k] [monoid G] {V : Type u} [ V] (g : G) (v : V) :
(((Rep.trivial k G V).ρ) g) v = v
@[simp]
theorem Rep.monoidal_category.braiding_hom_apply {k G : Type u} [comm_ring k] [monoid G] {A B : Rep k G} (x : A) (y : B) :
((β_ A B).hom.hom) (x ⊗ₜ[k] y) = y ⊗ₜ[k] x
@[simp]
theorem Rep.monoidal_category.braiding_inv_apply {k G : Type u} [comm_ring k] [monoid G] {A B : Rep k G} (x : A) (y : B) :
((β_ A B).inv.hom) (y ⊗ₜ[k] x) = x ⊗ₜ[k] y
noncomputable def Rep.linearization (k G : Type u) [comm_ring k] [monoid G] :

The monoidal functor sending a type H with a G-action to the induced k-linear G-representation on k[H].

Equations
@[simp]
theorem Rep.linearization_obj_ρ {k G : Type u} [comm_ring k] [monoid G] (X : Action (Type u) (Mon.of G)) (g : G) (x : X.V →₀ k) :
(.ρ) g) x = ((X.ρ) g)) x
@[simp]
theorem Rep.linearization_of {k G : Type u} [comm_ring k] [monoid G] (X : Action (Type u) (Mon.of G)) (g : G) (x : X.V) :
(.ρ) g) 1) = finsupp.single ((X.ρ) g x) 1
@[simp]
theorem Rep.linearization_map_hom {k G : Type u} [comm_ring k] [monoid G] {X Y : Action (Type u) (Mon.of G)} (f : X Y) :
.hom = f.hom
theorem Rep.linearization_map_hom_single {k G : Type u} [comm_ring k] [monoid G] {X Y : Action (Type u) (Mon.of G)} (f : X Y) (x : X.V) (r : k) :
.hom) r) = finsupp.single (f.hom x) r
@[simp]
theorem Rep.linearization_μ_hom {k G : Type u} [comm_ring k] [monoid G] (X Y : Action (Type u) (Mon.of G)) :
@[simp]
@[simp]
theorem Rep.linearization_ε_hom {k G : Type u} [comm_ring k] [monoid G] :
= finsupp.lsingle punit.star
@[simp]
theorem Rep.linearization_ε_inv_hom_apply {k G : Type u} [comm_ring k] [monoid G] (r : k) :
(finsupp.single punit.star r) = r
@[simp]
theorem Rep.linearization_trivial_iso_inv_hom_apply (k G : Type u) [comm_ring k] [monoid G] (X : Type u) (a : {V := X, ρ := 1}).V)) :
X).inv.hom) a = a
noncomputable def Rep.linearization_trivial_iso (k G : Type u) [comm_ring k] [monoid G] (X : Type u) :
{V := X, ρ := 1} G (X →₀ k)

The linearization of a type X on which G acts trivially is the trivial G-representation on k[X].

Equations
@[simp]
theorem Rep.linearization_trivial_iso_hom_hom_apply (k G : Type u) [comm_ring k] [monoid G] (X : Type u) (a : {V := X, ρ := 1}).V)) :
X).hom.hom) a = a
@[reducible]
noncomputable def Rep.of_mul_action (k G : Type u) [comm_ring k] [monoid G] (H : Type u) [ H] :
Rep k G

Given a G-action on H, this is k[H] bundled with the natural representation G →* End(k[H]) as a term of type Rep k G.

noncomputable def Rep.left_regular (k G : Type u) [comm_ring k] [monoid G] :
Rep k G

The k-linear G-representation on k[G], induced by left multiplication.

Equations
• = G
noncomputable def Rep.diagonal (k G : Type u) [comm_ring k] [monoid G] (n : ) :
Rep k G

The k-linear G-representation on k[Gⁿ], induced by left multiplication.

Equations
noncomputable def Rep.linearization_of_mul_action_iso (k G : Type u) [comm_ring k] [monoid G] (H : Type u) [ H] :

The linearization of a type H with a G-action is definitionally isomorphic to the k-linear G-representation on k[H] induced by the G-action on H.

Equations
noncomputable def Rep.left_regular_hom {k G : Type u} [comm_ring k] [monoid G] (A : Rep k G) (x : A) :
G A

Given an element x : A, there is a natural morphism of representations k[G] ⟶ A sending g ↦ A.ρ(g)(x).

Equations
@[simp]
theorem Rep.left_regular_hom_hom {k G : Type u} [comm_ring k] [monoid G] (A : Rep k G) (x : A) :
(A.left_regular_hom x).hom = k G) (λ (g : G), ((A.ρ) g) x)
theorem Rep.left_regular_hom_apply {k G : Type u} [comm_ring k] [monoid G] {A : Rep k G} (x : A) :
noncomputable def Rep.left_regular_hom_equiv {k G : Type u} [comm_ring k] [monoid G] (A : Rep k G) :
G A) ≃ₗ[k] A

Given a k-linear G-representation A, there is a k-linear isomorphism between representation morphisms Hom(k[G], A) and A.

Equations
@[simp]
theorem Rep.left_regular_hom_equiv_apply {k G : Type u} [comm_ring k] [monoid G] (A : Rep k G) (f : G A) :
@[simp]
theorem Rep.left_regular_hom_equiv_symm_apply {k G : Type u} [comm_ring k] [monoid G] (A : Rep k G) (x : A) :
theorem Rep.left_regular_hom_equiv_symm_single {k G : Type u} [comm_ring k] [monoid G] {A : Rep k G} (x : A) (g : G) :
@[protected, instance]
noncomputable def Rep.category_theory.monoidal_closed {k G : Type u} [comm_ring k] [group G] :
Equations
theorem Rep.ihom_obj_ρ_def {k G : Type u} [comm_ring k] [group G] (A B : Rep k G) :

Explicit description of the 'internal Hom' iHom(A, B) of two representations A, B: this is F⁻¹(iHom(F(A), F(B))), where F is an equivalence Rep k G ≌ (single_obj G ⥤ Module k). Just used to prove Rep.ihom_obj_ρ.

@[simp]
theorem Rep.ihom_obj_ρ {k G : Type u} [comm_ring k] [group G] (A B : Rep k G) :
.obj B).ρ = A.ρ.lin_hom B.ρ

Given k-linear G-representations (A, ρ₁), (B, ρ₂), the 'internal Hom' is the representation on Homₖ(A, B) sending g : G and f : A →ₗ[k] B to (ρ₂ g) ∘ₗ f ∘ₗ (ρ₁ g⁻¹).

@[simp]
theorem Rep.ihom_map_hom {k G : Type u} [comm_ring k] [group G] (A : Rep k G) {B C : Rep k G} (f : B C) :
.map f).hom = B C) f.hom

Unfolds the unit in the adjunction A ⊗ - ⊣ iHom(A, -); just used to prove Rep.ihom_coev_app_hom.

@[simp]
theorem Rep.ihom_coev_app_hom {k G : Type u} [comm_ring k] [group G] (A B : Rep k G) :
B).hom = (((𝟭 (Rep k G)).obj B).V)).flip

Describes the unit in the adjunction A ⊗ - ⊣ iHom(A, -); given another k-linear G-representation B, the k-linear map underlying the resulting map B ⟶ iHom(A, A ⊗ B) is given by flipping the arguments in the natural k-bilinear map A →ₗ[k] B →ₗ[k] A ⊗ B.

@[simp]
theorem Rep.monoidal_closed_curry_hom {k G : Type u} [comm_ring k] [group G] {A B C : Rep k G} (f : A B C) :

Given a k-linear G-representation A, the adjunction A ⊗ - ⊣ iHom(A, -) defines a bijection Hom(A ⊗ B, C) ≃ Hom(B, iHom(A, C)) for all B, C. Given f : A ⊗ B ⟶ C, this lemma describes the k-linear map underlying f's image under the bijection. It is given by currying the k-linear map underlying f, giving a map A →ₗ[k] B →ₗ[k] C, then flipping the arguments.

@[simp]
theorem Rep.monoidal_closed_uncurry_hom {k G : Type u} [comm_ring k] [group G] {A B C : Rep k G} (f : B C) :

Given a k-linear G-representation A, the adjunction A ⊗ - ⊣ iHom(A, -) defines a bijection Hom(A ⊗ B, C) ≃ Hom(B, iHom(A, C)) for all B, C. Given f : B ⟶ iHom(A, C), this lemma describes the k-linear map underlying f's image under the bijection. It is given by flipping the arguments of the k-linear map underlying f, giving a map A →ₗ[k] B →ₗ[k] C, then uncurrying.

@[simp]
theorem Rep.ihom_ev_app_hom {k G : Type u} [comm_ring k] [group G] {A B : Rep k G} :
B).hom = (Mon.of G)).symm.inverse.obj A).obj punit.star) ( (Mon.of G)).symm.inverse.obj A).obj punit.star) →ₗ[k] linear_map.id.flip

Describes the counit in the adjunction A ⊗ - ⊣ iHom(A, -); given another k-linear G-representation B, the k-linear map underlying the resulting morphism A ⊗ iHom(A, B) ⟶ B is given by uncurrying the map A →ₗ[k] (A →ₗ[k] B) →ₗ[k] B defined by flipping the arguments in the identity map on Homₖ(A, B).

noncomputable def Rep.monoidal_closed.linear_hom_equiv {k G : Type u} [comm_ring k] [group G] (A B C : Rep k G) :
(A B C) ≃ₗ[k] B C

There is a k-linear isomorphism between the sets of representation morphismsHom(A ⊗ B, C) and Hom(B, Homₖ(A, C)).

Equations
noncomputable def Rep.monoidal_closed.linear_hom_equiv_comm {k G : Type u} [comm_ring k] [group G] (A B C : Rep k G) :
(A B C) ≃ₗ[k] A C

There is a k-linear isomorphism between the sets of representation morphismsHom(A ⊗ B, C) and Hom(A, Homₖ(B, C)).

Equations
theorem Rep.monoidal_closed.linear_hom_equiv_hom {k G : Type u} [comm_ring k] [group G] {A B C : Rep k G} (f : A B C) :
f).hom =
theorem Rep.monoidal_closed.linear_hom_equiv_comm_hom {k G : Type u} [comm_ring k] [group G] {A B C : Rep k G} (f : A B C) :
theorem Rep.monoidal_closed.linear_hom_equiv_symm_hom {k G : Type u} [comm_ring k] [group G] {A B C : Rep k G} (f : B C) :
(.symm) f).hom = B C)
theorem Rep.monoidal_closed.linear_hom_equiv_comm_symm_hom {k G : Type u} [comm_ring k] [group G] {A B C : Rep k G} (f : A C) :
( f).hom = B C) f.hom
def representation.Rep_of_tprod_iso {k G : Type u} [comm_ring k] [monoid G] {V W : Type u} [ V] [ W] (ρ : V) (τ : W) :
Rep.of (ρ.tprod τ)

Tautological isomorphism to help Lean in typechecking.

Equations
theorem representation.Rep_of_tprod_iso_apply {k G : Type u} [comm_ring k] [monoid G] {V W : Type u} [ V] [ W] (ρ : V) (τ : W) (x : W) :
theorem representation.Rep_of_tprod_iso_inv_apply {k G : Type u} [comm_ring k] [monoid G] {V W : Type u} [ V] [ W] (ρ : V) (τ : W) (x : W) :

# The categorical equivalence Rep k G ≌ Module.{u} (monoid_algebra k G). #

theorem Rep.to_Module_monoid_algebra_map_aux {k : Type u_1} {G : Type u_2} [comm_ring k] [monoid G] (V : Type u_3) (W : Type u_4) [ V] [ W] (ρ : G →* V →ₗ[k] V) (σ : G →* W →ₗ[k] W) (f : V →ₗ[k] W) (w : (g : G), f.comp (ρ g) = (σ g).comp f) (r : G) (x : V) :
f ((( (V →ₗ[k] V)) ρ) r) x) = (( (W →ₗ[k] W)) σ) r) (f x)

Auxilliary lemma for to_Module_monoid_algebra.

def Rep.to_Module_monoid_algebra_map {k G : Type u} [comm_ring k] [monoid G] {V W : Rep k G} (f : V W) :

Auxilliary definition for to_Module_monoid_algebra.

Equations
noncomputable def Rep.to_Module_monoid_algebra {k G : Type u} [comm_ring k] [monoid G] :
Rep k G Module G)

Functorially convert a representation of G into a module over monoid_algebra k G.

Equations
noncomputable def Rep.of_Module_monoid_algebra {k G : Type u} [comm_ring k] [monoid G] :
Module G) Rep k G

Functorially convert a module over monoid_algebra k G into a representation of G.

Equations
theorem Rep.of_Module_monoid_algebra_obj_coe {k G : Type u} [comm_ring k] [monoid G] (M : Module G)) :
= G) M
theorem Rep.of_Module_monoid_algebra_obj_ρ {k G : Type u} [comm_ring k] [monoid G] (M : Module G)) :
noncomputable def Rep.counit_iso_add_equiv {k G : Type u} [comm_ring k] [monoid G] {M : Module G)} :

Auxilliary definition for equivalence_Module_monoid_algebra.

Equations
noncomputable def Rep.unit_iso_add_equiv {k G : Type u} [comm_ring k] [monoid G] {V : Rep k G} :

Auxilliary definition for equivalence_Module_monoid_algebra.

Equations
noncomputable def Rep.counit_iso {k G : Type u} [comm_ring k] [monoid G] (M : Module G)) :

Auxilliary definition for equivalence_Module_monoid_algebra.

Equations
theorem Rep.unit_iso_comm {k G : Type u} [comm_ring k] [monoid G] (V : Rep k G) (g : G) (x : V) :
noncomputable def Rep.unit_iso {k G : Type u} [comm_ring k] [monoid G] (V : Rep k G) :

Auxilliary definition for equivalence_Module_monoid_algebra.

Equations
noncomputable def Rep.equivalence_Module_monoid_algebra {k G : Type u} [comm_ring k] [monoid G] :
Rep k G Module G)

The categorical equivalence Rep k G ≌ Module (monoid_algebra k G).

Equations