File: Mathlib/RepresentationTheory/FDRep.lean

full_name: FDRep
code: /-- The category of finite dimensional `k`-linear representations of a monoid `G`. -/
abbrev FDRep (k G : Type u) [Field k] [Monoid G] 
goal: Type (u + 1)

full_name: FDRep.instLargeCategory
code: instance : LargeCategory (FDRep k G) 
goal: CategoryTheory.LargeCategory (FDRep k G)

full_name: FDRep.instConcreteCategory
code: instance : ConcreteCategory (FDRep k G) 
goal: CategoryTheory.ConcreteCategory (FDRep k G)

full_name: FDRep.instPreadditive
code: instance : Preadditive (FDRep k G) 
goal: CategoryTheory.Preadditive (FDRep k G)

full_name: FDRep.instHasFiniteLimits
code: instance : HasFiniteLimits (FDRep k G) 
goal: CategoryTheory.Limits.HasFiniteLimits (FDRep k G)

full_name: FDRep.instLinear
code: instance : Linear k (FDRep k G) 
goal: CategoryTheory.Linear k (FDRep k G)

full_name: FDRep.instCoeSortType
code: instance : CoeSort (FDRep k G) (Type u) 
goal: CoeSort (FDRep k G) (Type u)

full_name: FDRep.instAddCommGroupCoe
code: instance (V : FDRep k G) : AddCommGroup V 
goal: AddCommGroup (CoeSort.coe V)

full_name: FDRep.instModuleCoe
code: instance (V : FDRep k G) : Module k V 
goal: Module k (CoeSort.coe V)

full_name: FDRep.instFiniteDimensionalCoe
code: instance (V : FDRep k G) : FiniteDimensional k V 
goal: FiniteDimensional k (CoeSort.coe V)

full_name: FDRep.instFiniteDimensionalHom
code: /-- All hom spaces are finite dimensional. -/
instance (V W : FDRep k G) : FiniteDimensional k (V ⟶ W) 
goal: FiniteDimensional k (V ⟶ W)

full_name: FDRep.ρ
code: /-- The monoid homomorphism corresponding to the action of `G` onto `V : FDRep k G`. -/
def ρ (V : FDRep k G) : G →* V →ₗ[k] V 
goal: G →* CoeSort.coe V →ₗ[k] CoeSort.coe V

full_name: FDRep.isoToLinearEquiv
code: /-- The underlying `LinearEquiv` of an isomorphism of representations. -/
def isoToLinearEquiv {V W : FDRep k G} (i : V ≅ W) : V ≃ₗ[k] W 
goal: CoeSort.coe V ≃ₗ[k] CoeSort.coe W

full_name: FDRep.Iso.conj_ρ
code: theorem Iso.conj_ρ {V W : FDRep k G} (i : V ≅ W) (g : G) :
    W.ρ g = (FDRep.isoToLinearEquiv i).conj (V.ρ g) 
goal: W.ρ g = (FDRep.isoToLinearEquiv i).conj (V.ρ g)

full_name: FDRep.of_ρ
code: /-- Lift an unbundled representation to `FDRep`. -/
@[simps ρ]
def of {V : Type u} [AddCommGroup V] [Module k V] [FiniteDimensional k V]
    (ρ : Representation k G V) : FDRep k G 
goal: (FDRep.of ρ).ρ = ρ

full_name: FDRep.of
code: /-- Lift an unbundled representation to `FDRep`. -/
@[simps ρ]
def of {V : Type u} [AddCommGroup V] [Module k V] [FiniteDimensional k V]
    (ρ : Representation k G V) : FDRep k G 
goal: FDRep k G

full_name: FDRep.instHasForget₂Rep
code: instance : HasForget₂ (FDRep k G) (Rep k G) 
goal: CategoryTheory.HasForget₂ (FDRep k G) (Rep k G)

full_name: FDRep.forget₂_ρ
code: theorem forget₂_ρ (V : FDRep k G) : ((forget₂ (FDRep k G) (Rep k G)).obj V).ρ = V.ρ 
goal: ((CategoryTheory.forget₂ (FDRep k G) (Rep k G)).obj V).ρ = V.ρ

full_name: FDRep.instHasKernels
code: instance : HasKernels (FDRep k G) 
goal: CategoryTheory.Limits.HasKernels (FDRep k G)

full_name: FDRep.finrank_hom_simple_simple
code: /-- Schur's Lemma: the dimension of the `Hom`-space between two irreducible representation is `0` if
they are not isomorphic, and `1` if they are. -/
theorem finrank_hom_simple_simple [IsAlgClosed k] (V W : FDRep k G) [Simple V] [Simple W] :
    finrank k (V ⟶ W) = if Nonempty (V ≅ W) then 1 else 0 
goal: FiniteDimensional.finrank k (V ⟶ W) = if Nonempty (V ≅ W) then 1 else 0

full_name: FDRep.forget₂HomLinearEquiv
code: /-- The forgetful functor to `Rep k G` preserves hom-sets and their vector space structure. -/
def forget₂HomLinearEquiv (X Y : FDRep k G) :
    ((forget₂ (FDRep k G) (Rep k G)).obj X ⟶
      (forget₂ (FDRep k G) (Rep k G)).obj Y) ≃ₗ[k] X ⟶ Y 
goal: ((CategoryTheory.forget₂ (FDRep k G) (Rep k G)).obj X ⟶ (CategoryTheory.forget₂ (FDRep k G) (Rep k G)).obj Y) ≃ₗ[k]
  X ⟶ Y

full_name: FDRep.instRightRigidCategory
code: noncomputable instance : RightRigidCategory (FDRep k G) 
goal: CategoryTheory.RightRigidCategory (FDRep k G)

full_name: FDRep.dualTensorIsoLinHomAux
code: /-- Auxiliary definition for `FDRep.dualTensorIsoLinHom`. -/
noncomputable def dualTensorIsoLinHomAux :
    (FDRep.of ρV.dual ⊗ W).V ≅ (FDRep.of (linHom ρV W.ρ)).V 
goal: (CategoryTheory.MonoidalCategory.tensorObj (FDRep.of ρV.dual) W).V ≅ (FDRep.of (ρV.linHom W.ρ)).V

full_name: FDRep.dualTensorIsoLinHom
code: /-- When `V` and `W` are finite dimensional representations of a group `G`, the isomorphism
`dualTensorHomEquiv k V W` of vector spaces induces an isomorphism of representations. -/
noncomputable def dualTensorIsoLinHom : FDRep.of ρV.dual ⊗ W ≅ FDRep.of (linHom ρV W.ρ) 
goal: CategoryTheory.MonoidalCategory.tensorObj (FDRep.of ρV.dual) W ≅ FDRep.of (ρV.linHom W.ρ)

full_name: FDRep.dualTensorIsoLinHom_hom_hom
code: @[simp]
theorem dualTensorIsoLinHom_hom_hom : (dualTensorIsoLinHom ρV W).hom.hom = dualTensorHom k V W 
goal: (FDRep.dualTensorIsoLinHom ρV W).hom.hom = dualTensorHom k V (CoeSort.coe W)