File: Mathlib/RepresentationTheory/Invariants.lean

full_name: GroupAlgebra.average
code: /-- The average of all elements of the group `G`, considered as an element of `MonoidAlgebra k G`.
-/
noncomputable def average : MonoidAlgebra k G 
goal: MonoidAlgebra k G

full_name: GroupAlgebra.mul_average_left
code: /-- `average k G` is invariant under left multiplication by elements of `G`.
-/
@[simp]
theorem mul_average_left (g : G) : ↑(Finsupp.single g 1) * average k G = average k G 
goal: Finsupp.single g 1 * GroupAlgebra.average k G = GroupAlgebra.average k G

full_name: GroupAlgebra.mul_average_right
code: /-- `average k G` is invariant under right multiplication by elements of `G`.
-/
@[simp]
theorem mul_average_right (g : G) : average k G * ↑(Finsupp.single g 1) = average k G 
goal: GroupAlgebra.average k G * Finsupp.single g 1 = GroupAlgebra.average k G

full_name: Representation.invariants
code: /-- The subspace of invariants, consisting of the vectors fixed by all elements of `G`.
-/
def invariants : Submodule k V 
goal: Submodule k V

full_name: Representation.mem_invariants
code: @[simp]
theorem mem_invariants (v : V) : v ∈ invariants ρ ↔ ∀ g : G, ρ g v = v 
goal: v ∈ ρ.invariants ↔ ∀ (g : G), (ρ g) v = v

full_name: Representation.invariants_eq_inter
code: theorem invariants_eq_inter : (invariants ρ).carrier = ⋂ g : G, Function.fixedPoints (ρ g) 
goal: ρ.invariants.carrier = ⋂ g, Function.fixedPoints ⇑(ρ g)

full_name: Representation.invariants_eq_top
code: theorem invariants_eq_top [ρ.IsTrivial] :
    invariants ρ = ⊤ 
goal: ρ.invariants = ⊤

full_name: Representation.averageMap
code: /-- The action of `average k G` gives a projection map onto the subspace of invariants.
-/
@[simp]
noncomputable def averageMap : V →ₗ[k] V 
goal: V →ₗ[k] V

full_name: Representation.averageMap_invariant
code: /-- The `averageMap` sends elements of `V` to the subspace of invariants.
-/
theorem averageMap_invariant (v : V) : averageMap ρ v ∈ invariants ρ 
goal: ρ.averageMap v ∈ ρ.invariants

full_name: Representation.averageMap_id
code: /-- The `averageMap` acts as the identity on the subspace of invariants.
-/
theorem averageMap_id (v : V) (hv : v ∈ invariants ρ) : averageMap ρ v = v 
goal: ρ.averageMap v = v

full_name: Representation.isProj_averageMap
code: theorem isProj_averageMap : LinearMap.IsProj ρ.invariants ρ.averageMap 
goal: LinearMap.IsProj ρ.invariants ρ.averageMap

full_name: Representation.linHom.mem_invariants_iff_comm
code: theorem mem_invariants_iff_comm {X Y : Rep k G} (f : X.V →ₗ[k] Y.V) (g : G) :
    (linHom X.ρ Y.ρ) g f = f ↔ f.comp (X.ρ g) = (Y.ρ g).comp f 
goal: ((X.ρ.linHom Y.ρ) g) f = f ↔ f ∘ₗ X.ρ g = Y.ρ g ∘ₗ f

full_name: Representation.linHom.invariantsEquivRepHom
code: /-- The invariants of the representation `linHom X.ρ Y.ρ` correspond to the representation
homomorphisms from `X` to `Y`. -/
@[simps]
def invariantsEquivRepHom (X Y : Rep k G) : (linHom X.ρ Y.ρ).invariants ≃ₗ[k] X ⟶ Y 
goal: ↥(X.ρ.linHom Y.ρ).invariants ≃ₗ[k] X ⟶ Y

full_name: Representation.linHom.invariantsEquivRepHom_symm_apply_coe
code: /-- The invariants of the representation `linHom X.ρ Y.ρ` correspond to the representation
homomorphisms from `X` to `Y`. -/
@[simps]
def invariantsEquivRepHom (X Y : Rep k G) : (linHom X.ρ Y.ρ).invariants ≃ₗ[k] X ⟶ Y 
goal: ↑((Representation.linHom.invariantsEquivRepHom X Y).symm f) = f.hom

full_name: Representation.linHom.invariantsEquivRepHom_apply_hom
code: /-- The invariants of the representation `linHom X.ρ Y.ρ` correspond to the representation
homomorphisms from `X` to `Y`. -/
@[simps]
def invariantsEquivRepHom (X Y : Rep k G) : (linHom X.ρ Y.ρ).invariants ≃ₗ[k] X ⟶ Y 
goal: ((Representation.linHom.invariantsEquivRepHom X Y) f).hom = ↑f

full_name: Representation.linHom.invariantsEquivFDRepHom
code: /-- The invariants of the representation `linHom X.ρ Y.ρ` correspond to the representation
homomorphisms from `X` to `Y`. -/
def invariantsEquivFDRepHom (X Y : FDRep k G) : (linHom X.ρ Y.ρ).invariants ≃ₗ[k] X ⟶ Y 
goal: ↥(Representation.linHom X.ρ Y.ρ).invariants ≃ₗ[k] X ⟶ Y