mathlib documentation

representation_theory.group_cohomology_resolution

The structure of the k[G]-module k[Gⁿ] #

This file contains facts about an important k[G]-module structure on k[Gⁿ], where k is a commutative ring and G is a group. The module structure arises from the representation G →* End(k[Gⁿ]) induced by the diagonal action of G on Gⁿ.

In particular, we define an isomorphism of k-linear G-representations between k[Gⁿ⁺¹] and k[G] ⊗ₖ k[Gⁿ] (on which G acts by ρ(g₁)(g₂ ⊗ x) = (g₁ * g₂) ⊗ x).

This allows us to define a k[G]-basis on k[Gⁿ⁺¹], by mapping the natural k[G]-basis of k[G] ⊗ₖ k[Gⁿ] along the isomorphism.

Main definitions #

TODO #

Implementation notes #

We express k[G]-module structures on a module k-module V using the representation definition. We avoid using instances module (G →₀ k) V so that we do not run into possible scalar action diamonds.

We also use the category theory library to bundle the type k[Gⁿ] - or more generally k[H] when H has G-action - and the representation together, as a term of type Rep k G, and call it Rep.of_mul_action k G H. This enables us to express the fact that certain maps are G-equivariant by constructing morphisms in the category Rep k G, i.e., representations of G over k.

noncomputable def group_cohomology.resolution.to_tensor_aux (k G : Type u) [comm_ring k] (n : ) [group G] :
((fin (n + 1) → G) →₀ k) →ₗ[k] tensor_product k (G →₀ k) ((fin n → G) →₀ k)

The k-linear map from k[Gⁿ⁺¹] to k[G] ⊗ₖ k[Gⁿ] sending (g₀, ..., gₙ) to g₀ ⊗ (g₀⁻¹g₁, g₁⁻¹g₂, ..., gₙ₋₁⁻¹gₙ).

Equations
noncomputable def group_cohomology.resolution.of_tensor_aux (k G : Type u) [comm_ring k] (n : ) [group G] :
tensor_product k (G →₀ k) ((fin n → G) →₀ k) →ₗ[k] (fin (n + 1) → G) →₀ k

The k-linear map from k[G] ⊗ₖ k[Gⁿ] to k[Gⁿ⁺¹] sending g ⊗ (g₁, ..., gₙ) to (g, gg₁, gg₁g₂, ..., gg₁...gₙ).

Equations
theorem group_cohomology.resolution.to_tensor_aux_single {k G : Type u} [comm_ring k] {n : } [group G] (f : fin (n + 1) → G) (m : k) :
theorem group_cohomology.resolution.of_tensor_aux_single {k G : Type u} [comm_ring k] {n : } [group G] (g : G) (m : k) (x : (fin n → G) →₀ k) :
(group_cohomology.resolution.of_tensor_aux k G n) (finsupp.single g m ⊗ₜ[k] x) = ((finsupp.lift ((fin (n + 1) → G) →₀ k) k (fin n → G)) (λ (f : fin n → G), finsupp.single (g fin.partial_prod f) m)) x
@[reducible]
noncomputable def Rep.of_mul_action (k : Type u) [comm_ring k] (G : Type u) [monoid G] (H : Type u) [mul_action G 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 group_cohomology.resolution.to_tensor (k G : Type u) [comm_ring k] (n : ) [group G] :

A hom of k-linear representations of G from k[Gⁿ⁺¹] to k[G] ⊗ₖ k[Gⁿ] (on which G acts by ρ(g₁)(g₂ ⊗ x) = (g₁ * g₂) ⊗ x) sending (g₀, ..., gₙ) to g₀ ⊗ (g₀⁻¹g₁, g₁⁻¹g₂, ..., gₙ₋₁⁻¹gₙ).

Equations
noncomputable def group_cohomology.resolution.of_tensor (k G : Type u) [comm_ring k] (n : ) [group G] :

A hom of k-linear representations of G from k[G] ⊗ₖ k[Gⁿ] (on which G acts by ρ(g₁)(g₂ ⊗ x) = (g₁ * g₂) ⊗ x) to k[Gⁿ⁺¹] sending g ⊗ (g₁, ..., gₙ) to (g, gg₁, gg₁g₂, ..., gg₁...gₙ).

Equations
@[simp]
theorem group_cohomology.resolution.to_tensor_single {k G : Type u} [comm_ring k] {n : } [group G] (f : fin (n + 1) → G) (m : k) :
@[simp]
theorem group_cohomology.resolution.of_tensor_single {k G : Type u} [comm_ring k] {n : } [group G] (g : G) (m : k) (x : (fin n → G) →₀ k) :
((group_cohomology.resolution.of_tensor k G n).hom) (finsupp.single g m ⊗ₜ[k] x) = ((finsupp.lift (Rep.of_mul_action k G (fin (n + 1) → G)) k (fin n → G)) (λ (f : fin n → G), finsupp.single (g fin.partial_prod f) m)) x
theorem group_cohomology.resolution.of_tensor_single' {k G : Type u} [comm_ring k] {n : } [group G] (g : G →₀ k) (x : fin n → G) (m : k) :
noncomputable def group_cohomology.resolution.equiv_tensor (k G : Type u) [comm_ring k] (n : ) [group G] :

An isomorphism of k-linear representations of G from k[Gⁿ⁺¹] to k[G] ⊗ₖ k[Gⁿ] (on which G acts by ρ(g₁)(g₂ ⊗ x) = (g₁ * g₂) ⊗ x) sending (g₀, ..., gₙ) to g₀ ⊗ (g₀⁻¹g₁, g₁⁻¹g₂, ..., gₙ₋₁⁻¹gₙ).

Equations

The k[G]-linear isomorphism k[G] ⊗ₖ k[Gⁿ] ≃ k[Gⁿ⁺¹], where the k[G]-module structure on the lefthand side is tensor_product.left_module, whilst that of the righthand side comes from representation.as_module. Allows us to use basis.algebra_tensor_product to get a k[G]-basis of the righthand side.

Equations
noncomputable def group_cohomology.resolution.of_mul_action_basis (k G : Type u) [comm_ring k] (n : ) [group G] :
basis (fin n → G) (monoid_algebra k G) (representation.of_mul_action k G (fin (n + 1) → G)).as_module

A k[G]-basis of k[Gⁿ⁺¹], coming from the k[G]-linear isomorphism k[G] ⊗ₖ k[Gⁿ] ≃ k[Gⁿ⁺¹].

Equations