File: Mathlib/RepresentationTheory/GroupCohomology/Basic.lean

full_name: groupCohomology.linearYonedaObjResolution
code: /-- The complex `Hom(P, A)`, where `P` is the standard resolution of `k` as a trivial `k`-linear
`G`-representation. -/
abbrev linearYonedaObjResolution (A : Rep k G) : CochainComplex (ModuleCat.{u} k) ℕ 
goal: CochainComplex (ModuleCat k) ℕ

full_name: groupCohomology.linearYonedaObjResolution_d_apply
code: theorem linearYonedaObjResolution_d_apply {A : Rep k G} (i j : ℕ) (x : (resolution k G).X i ⟶ A) :
    (linearYonedaObjResolution A).d i j x = (resolution k G).d j i ≫ x 
goal: ((groupCohomology.linearYonedaObjResolution A).d i j) x = (groupCohomology.resolution k G).d j i ≫ x

full_name: inhomogeneousCochains.d
code: /-- The differential in the complex of inhomogeneous cochains used to
calculate group cohomology. -/
@[simps]
def d [Monoid G] (n : ℕ) (A : Rep k G) : ((Fin n → G) → A) →ₗ[k] (Fin (n + 1) → G) → A 
goal: ((Fin n → G) → CoeSort.coe A) →ₗ[k] (Fin (n + 1) → G) → CoeSort.coe A

full_name: inhomogeneousCochains.d_apply
code: /-- The differential in the complex of inhomogeneous cochains used to
calculate group cohomology. -/
@[simps]
def d [Monoid G] (n : ℕ) (A : Rep k G) : ((Fin n → G) → A) →ₗ[k] (Fin (n + 1) → G) → A 
goal: (inhomogeneousCochains.d n A) f g =
  (A.ρ (g 0)) (f fun i => g i.succ) + ∑ j : Fin (n + 1), (-1) ^ (↑j + 1) • f (j.contractNth (fun x x_1 => x * x_1) g)

full_name: inhomogeneousCochains.d_eq
code: /-- The theorem that our isomorphism `Fun(Gⁿ, A) ≅ Hom(k[Gⁿ⁺¹], A)` (where the righthand side is
morphisms in `Rep k G`) commutes with the differentials in the complex of inhomogeneous cochains
and the homogeneous `linearYonedaObjResolution`. -/
@[nolint checkType] theorem d_eq :
    d n A =
      (diagonalHomEquiv n A).toModuleIso.inv ≫
        (linearYonedaObjResolution A).d n (n + 1) ≫
          (diagonalHomEquiv (n + 1) A).toModuleIso.hom 
goal: inhomogeneousCochains.d n A =
  (Rep.diagonalHomEquiv n A).toModuleIso.inv ≫
    (groupCohomology.linearYonedaObjResolution A).d n (n + 1) ≫ (Rep.diagonalHomEquiv (n + 1) A).toModuleIso.hom

full_name: groupCohomology.inhomogeneousCochains
code: /-- Given a `k`-linear `G`-representation `A`, this is the complex of inhomogeneous cochains
$$0 \to \mathrm{Fun}(G^0, A) \to \mathrm{Fun}(G^1, A) \to \mathrm{Fun}(G^2, A) \to \dots$$
which calculates the group cohomology of `A`. -/
noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ 
goal: CochainComplex (ModuleCat k) ℕ

full_name: groupCohomology.inhomogeneousCochains.d_def
code: @[simp]
theorem inhomogeneousCochains.d_def (n : ℕ) :
    (inhomogeneousCochains A).d n (n + 1) = inhomogeneousCochains.d n A 
goal: (groupCohomology.inhomogeneousCochains A).d n (n + 1) = inhomogeneousCochains.d n A

full_name: groupCohomology.inhomogeneousCochainsIso
code: /-- Given a `k`-linear `G`-representation `A`, the complex of inhomogeneous cochains is isomorphic
to `Hom(P, A)`, where `P` is the standard resolution of `k` as a trivial `G`-representation. -/
def inhomogeneousCochainsIso : inhomogeneousCochains A ≅ linearYonedaObjResolution A 
goal: groupCohomology.inhomogeneousCochains A ≅ groupCohomology.linearYonedaObjResolution A

full_name: groupCohomology.cocycles
code: /-- The `n`-cocycles `Zⁿ(G, A)` of a `k`-linear `G`-representation `A`, i.e. the kernel of the
`n`th differential in the complex of inhomogeneous cochains. -/
abbrev cocycles (n : ℕ) : ModuleCat k 
goal: ModuleCat k

full_name: groupCohomology.iCocycles
code: /-- The natural inclusion of the `n`-cocycles `Zⁿ(G, A)` into the `n`-cochains `Cⁿ(G, A).` -/
abbrev iCocycles (n : ℕ) : cocycles A n ⟶ ModuleCat.of k ((Fin n → G) → A) 
goal: groupCohomology.cocycles A n ⟶ ModuleCat.of k ((Fin n → G) → CoeSort.coe A)

full_name: groupCohomology.toCocycles
code: /-- This is the map from `i`-cochains to `j`-cocycles induced by the differential in the complex of
inhomogeneous cochains. -/
abbrev toCocycles (i j : ℕ) : ModuleCat.of k ((Fin i → G) → A) ⟶ cocycles A j 
goal: ModuleCat.of k ((Fin i → G) → CoeSort.coe A) ⟶ groupCohomology.cocycles A j

full_name: groupCohomology
code: /-- The group cohomology of a `k`-linear `G`-representation `A`, as the cohomology of its complex
of inhomogeneous cochains. -/
def groupCohomology [Group G] (A : Rep k G) (n : ℕ) : ModuleCat k 
goal: ModuleCat k

full_name: groupCohomologyπ
code: /-- The natural map from `n`-cocycles to `n`th group cohomology for a `k`-linear
`G`-representation `A`. -/
abbrev groupCohomologyπ [Group G] (A : Rep k G) (n : ℕ) :
    groupCohomology.cocycles A n ⟶ groupCohomology A n 
goal: groupCohomology.cocycles A n ⟶ groupCohomology A n

full_name: groupCohomologyIsoExt
code: /-- The `n`th group cohomology of a `k`-linear `G`-representation `A` is isomorphic to
`Extⁿ(k, A)` (taken in `Rep k G`), where `k` is a trivial `k`-linear `G`-representation. -/
def groupCohomologyIsoExt [Group G] (A : Rep k G) (n : ℕ) :
    groupCohomology A n ≅ ((Ext k (Rep k G) n).obj (Opposite.op <| Rep.trivial k G k)).obj A 
goal: groupCohomology A n ≅ ((Ext k (Rep k G) n).obj (Opposite.op (Rep.trivial k G k))).obj A