mathlib3 documentation

representation_theory.maschke

Maschke's theorem #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

We prove Maschke's theorem for finite groups, in the formulation that every submodule of a k[G] module has a complement, when k is a field with invertible (fintype.card G : k).

We do the core computation in greater generality. For any [comm_ring k] in which [invertible (fintype.card G : k)], and a k[G]-linear map i : V → W which admits a k-linear retraction π, we produce a k[G]-linear retraction by taking the average over G of the conjugates of π.

Implementation Notes #

Future work #

It's not so far to give the usual statement, that every finite dimensional representation of a finite group is semisimple (i.e. a direct sum of irreducibles).

We now do the key calculation in Maschke's theorem.

Given V → W, an inclusion of k[G] modules,, assume we have some retraction π (i.e. ∀ v, π (i v) = v), just as a k-linear map. (When k is a field, this will be available cheaply, by choosing a basis.)

We now construct a retraction of the inclusion as a k[G]-linear map, by the formula $$ \frac{1}{|G|} \sum_{g \in G} g⁻¹ • π(g • -). $$

noncomputable def linear_map.conjugate {k : Type u} [comm_ring k] {G : Type u} [group G] {V : Type u} [add_comm_group V] [module k V] [module (monoid_algebra k G) V] [is_scalar_tower k (monoid_algebra k G) V] {W : Type u} [add_comm_group W] [module k W] [module (monoid_algebra k G) W] [is_scalar_tower k (monoid_algebra k G) W] (π : W →ₗ[k] V) (g : G) :

We define the conjugate of π by g, as a k-linear map.

Equations
theorem linear_map.conjugate_i {k : Type u} [comm_ring k] {G : Type u} [group G] {V : Type u} [add_comm_group V] [module k V] [module (monoid_algebra k G) V] [is_scalar_tower k (monoid_algebra k G) V] {W : Type u} [add_comm_group W] [module k W] [module (monoid_algebra k G) W] [is_scalar_tower k (monoid_algebra k G) W] (π : W →ₗ[k] V) (i : V →ₗ[monoid_algebra k G] W) (h : (v : V), π (i v) = v) (g : G) (v : V) :
(π.conjugate g) (i v) = v
noncomputable def linear_map.sum_of_conjugates {k : Type u} [comm_ring k] (G : Type u) [group G] {V : Type u} [add_comm_group V] [module k V] [module (monoid_algebra k G) V] [is_scalar_tower k (monoid_algebra k G) V] {W : Type u} [add_comm_group W] [module k W] [module (monoid_algebra k G) W] [is_scalar_tower k (monoid_algebra k G) W] (π : W →ₗ[k] V) [fintype G] :

The sum of the conjugates of π by each element g : G, as a k-linear map.

(We postpone dividing by the size of the group as long as possible.)

Equations
noncomputable def linear_map.sum_of_conjugates_equivariant {k : Type u} [comm_ring k] (G : Type u) [group G] {V : Type u} [add_comm_group V] [module k V] [module (monoid_algebra k G) V] [is_scalar_tower k (monoid_algebra k G) V] {W : Type u} [add_comm_group W] [module k W] [module (monoid_algebra k G) W] [is_scalar_tower k (monoid_algebra k G) W] (π : W →ₗ[k] V) [fintype G] :

In fact, the sum over g : G of the conjugate of π by g is a k[G]-linear map.

Equations
noncomputable def linear_map.equivariant_projection {k : Type u} [comm_ring k] (G : Type u) [group G] {V : Type u} [add_comm_group V] [module k V] [module (monoid_algebra k G) V] [is_scalar_tower k (monoid_algebra k G) V] {W : Type u} [add_comm_group W] [module k W] [module (monoid_algebra k G) W] [is_scalar_tower k (monoid_algebra k G) W] (π : W →ₗ[k] V) [fintype G] [inv : invertible (fintype.card G)] :

We construct our k[G]-linear retraction of i as $$ \frac{1}{|G|} \sum_{g \in G} g⁻¹ • π(g • -). $$

Equations
theorem linear_map.equivariant_projection_condition {k : Type u} [comm_ring k] (G : Type u) [group G] {V : Type u} [add_comm_group V] [module k V] [module (monoid_algebra k G) V] [is_scalar_tower k (monoid_algebra k G) V] {W : Type u} [add_comm_group W] [module k W] [module (monoid_algebra k G) W] [is_scalar_tower k (monoid_algebra k G) W] (π : W →ₗ[k] V) (i : V →ₗ[monoid_algebra k G] W) (h : (v : V), π (i v) = v) [fintype G] [inv : invertible (fintype.card G)] (v : V) :
@[protected, instance]
Equations
@[protected, instance]

This also implies an instance is_semisimple_module (monoid_algebra k G) V.