representation_theory.group_cohomology.basic
⟷
Mathlib.RepresentationTheory.GroupCohomology.Basic
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -173,7 +173,7 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
by
ext x y
have := LinearMap.ext_iff.1 ((linear_yoneda_obj_resolution A).d_comp_d n (n + 1) (n + 2))
- simp only [ModuleCat.coe_comp, Function.comp_apply] at this
+ simp only [ModuleCat.coe_comp, Function.comp_apply] at this
simp only [ModuleCat.coe_comp, Function.comp_apply, d_eq, LinearEquiv.toModuleIso_hom,
LinearEquiv.toModuleIso_inv, LinearEquiv.coe_coe, LinearEquiv.symm_apply_apply, this,
LinearMap.zero_apply, map_zero, Pi.zero_apply]
mathlib commit https://github.com/leanprover-community/mathlib/commit/3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe
@@ -201,7 +201,7 @@ open groupCohomology
/-- 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 :=
- (inhomogeneousCochains A).homology n
+ (inhomogeneousCochains A).homology' n
#align group_cohomology groupCohomology
-/
@@ -211,7 +211,7 @@ def groupCohomology [Group G] (A : Rep k G) (n : ℕ) : ModuleCat k :=
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 :=
homologyObjIsoOfHomotopyEquiv (HomotopyEquiv.ofIso (inhomogeneousCochainsIso _)) _ ≪≫
- HomologicalComplex.homologyUnop _ _ ≪≫ (extIso k G A n).symm
+ HomologicalComplex.homology'Unop _ _ ≪≫ (extIso k G A n).symm
#align group_cohomology_iso_Ext groupCohomologyIsoExt
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe
@@ -80,20 +80,20 @@ namespace groupCohomology
variable [Monoid G]
-#print GroupCohomology.linearYonedaObjResolution /-
+#print groupCohomology.linearYonedaObjResolution /-
/-- 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) ℕ :=
HomologicalComplex.unop
((((linearYoneda k (Rep k G)).obj A).rightOp.mapHomologicalComplex _).obj (resolution k G))
-#align group_cohomology.linear_yoneda_obj_resolution GroupCohomology.linearYonedaObjResolution
+#align group_cohomology.linear_yoneda_obj_resolution groupCohomology.linearYonedaObjResolution
-/
-#print GroupCohomology.linearYonedaObjResolution_d_apply /-
+#print groupCohomology.linearYonedaObjResolution_d_apply /-
theorem linearYonedaObjResolution_d_apply {A : Rep k G} (i j : ℕ) (x : (resolution k G).pt i ⟶ A) :
(linearYonedaObjResolution A).d i j x = (resolution k G).d j i ≫ x :=
rfl
-#align group_cohomology.linear_yoneda_obj_resolution_d_apply GroupCohomology.linearYonedaObjResolution_d_apply
+#align group_cohomology.linear_yoneda_obj_resolution_d_apply groupCohomology.linearYonedaObjResolution_d_apply
-/
end groupCohomology
@@ -102,7 +102,7 @@ namespace InhomogeneousCochains
open Rep groupCohomology
-#print InhomogeneousCochains.d /-
+#print inhomogeneousCochains.d /-
/-- The differential in the complex of inhomogeneous cochains used to
calculate group cohomology. -/
@[simps]
@@ -119,12 +119,12 @@ def d [Monoid G] (n : ℕ) (A : Rep k G) : ((Fin n → G) → A) →ₗ[k] (Fin
ext x
simp only [Pi.smul_apply, RingHom.id_apply, map_smul, smul_add, Finset.smul_sum, ← smul_assoc,
smul_eq_mul, mul_comm r]
-#align inhomogeneous_cochains.d InhomogeneousCochains.d
+#align inhomogeneous_cochains.d inhomogeneousCochains.d
-/
variable [Group G] (n) (A : Rep k G)
-#print InhomogeneousCochains.d_eq /-
+#print inhomogeneousCochains.d_eq /-
/-- 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 `linear_yoneda_obj_resolution`. -/
@@ -152,7 +152,7 @@ theorem d_eq :
exact
Finset.sum_congr rfl fun j hj => by
rw [diagonal_hom_equiv_symm_partial_prod_succ, Fin.val_succ]
-#align inhomogeneous_cochains.d_eq InhomogeneousCochains.d_eq
+#align inhomogeneous_cochains.d_eq inhomogeneousCochains.d_eq
-/
end InhomogeneousCochains
@@ -163,13 +163,13 @@ variable [Group G] (n) (A : Rep k G)
open InhomogeneousCochains
-#print GroupCohomology.inhomogeneousCochains /-
+#print groupCohomology.inhomogeneousCochains /-
/-- 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) ℕ :=
CochainComplex.of (fun n => ModuleCat.of k ((Fin n → G) → A))
- (fun n => InhomogeneousCochains.d n A) fun n =>
+ (fun n => inhomogeneousCochains.d n A) fun n =>
by
ext x y
have := LinearMap.ext_iff.1 ((linear_yoneda_obj_resolution A).d_comp_d n (n + 1) (n + 2))
@@ -177,10 +177,10 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
simp only [ModuleCat.coe_comp, Function.comp_apply, d_eq, LinearEquiv.toModuleIso_hom,
LinearEquiv.toModuleIso_inv, LinearEquiv.coe_coe, LinearEquiv.symm_apply_apply, this,
LinearMap.zero_apply, map_zero, Pi.zero_apply]
-#align group_cohomology.inhomogeneous_cochains GroupCohomology.inhomogeneousCochains
+#align group_cohomology.inhomogeneous_cochains groupCohomology.inhomogeneousCochains
-/
-#print GroupCohomology.inhomogeneousCochainsIso /-
+#print groupCohomology.inhomogeneousCochainsIso /-
/-- 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 :=
@@ -190,7 +190,7 @@ def inhomogeneousCochainsIso : inhomogeneousCochains A ≅ linearYonedaObjResolu
subst h
simp only [CochainComplex.of_d, d_eq, category.assoc, iso.symm_hom, iso.hom_inv_id,
category.comp_id]
-#align group_cohomology.inhomogeneous_cochains_iso GroupCohomology.inhomogeneousCochainsIso
+#align group_cohomology.inhomogeneous_cochains_iso groupCohomology.inhomogeneousCochainsIso
-/
end groupCohomology
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -137,8 +137,8 @@ theorem d_eq :
simp only [ModuleCat.coe_comp, LinearEquiv.coe_coe, Function.comp_apply,
LinearEquiv.toModuleIso_inv, linear_yoneda_obj_resolution_d_apply, LinearEquiv.toModuleIso_hom,
diagonal_hom_equiv_apply, Action.comp_hom, resolution.d_eq k G n,
- resolution.d_of (Fin.partialProd g), LinearMap.map_sum, ←
- Finsupp.smul_single_one _ ((-1 : k) ^ _), map_smul, d_apply]
+ resolution.d_of (Fin.partialProd g), map_sum, ← Finsupp.smul_single_one _ ((-1 : k) ^ _),
+ map_smul, d_apply]
simp only [@Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul, Fin.succAbove_zero,
diagonal_hom_equiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1)), Function.comp_apply,
Fin.partialProd_succ, Fin.castSucc_zero', Fin.partialProd_zero, one_mul]
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2023 Amelia Livingston. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Amelia Livingston
-/
-import Mathbin.Algebra.Homology.Opposite
-import Mathbin.RepresentationTheory.GroupCohomology.Resolution
+import Algebra.Homology.Opposite
+import RepresentationTheory.GroupCohomology.Resolution
#align_import representation_theory.group_cohomology.basic from "leanprover-community/mathlib"@"1a51edf13debfcbe223fa06b1cb353b9ed9751cc"
mathlib commit https://github.com/leanprover-community/mathlib/commit/63721b2c3eba6c325ecf8ae8cca27155a4f6306f
@@ -141,7 +141,7 @@ theorem d_eq :
Finsupp.smul_single_one _ ((-1 : k) ^ _), map_smul, d_apply]
simp only [@Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul, Fin.succAbove_zero,
diagonal_hom_equiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1)), Function.comp_apply,
- Fin.partialProd_succ, Fin.castSucc_zero, Fin.partialProd_zero, one_mul]
+ Fin.partialProd_succ, Fin.castSucc_zero', Fin.partialProd_zero, one_mul]
congr 1
· congr
ext
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2023 Amelia Livingston. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Amelia Livingston
-
-! This file was ported from Lean 3 source module representation_theory.group_cohomology.basic
-! leanprover-community/mathlib commit 1a51edf13debfcbe223fa06b1cb353b9ed9751cc
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.Homology.Opposite
import Mathbin.RepresentationTheory.GroupCohomology.Resolution
+#align_import representation_theory.group_cohomology.basic from "leanprover-community/mathlib"@"1a51edf13debfcbe223fa06b1cb353b9ed9751cc"
+
/-!
# The group cohomology of a `k`-linear `G`-representation
mathlib commit https://github.com/leanprover-community/mathlib/commit/2fe465deb81bcd7ccafa065bb686888a82f15372
@@ -144,12 +144,12 @@ theorem d_eq :
Finsupp.smul_single_one _ ((-1 : k) ^ _), map_smul, d_apply]
simp only [@Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul, Fin.succAbove_zero,
diagonal_hom_equiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1)), Function.comp_apply,
- Fin.partialProd_succ, Fin.castSuccEmb_zero, Fin.partialProd_zero, one_mul]
+ Fin.partialProd_succ, Fin.castSucc_zero, Fin.partialProd_zero, one_mul]
congr 1
· congr
ext
have := Fin.partialProd_right_inv g (Fin.castSuccEmb x)
- simp only [mul_inv_rev, Fin.castSuccEmb_fin_succ] at *
+ simp only [mul_inv_rev, Fin.castSucc_fin_succ] at *
rw [mul_assoc, ← mul_assoc _ _ (g x.succ), this, inv_mul_cancel_left]
·
exact
mathlib commit https://github.com/leanprover-community/mathlib/commit/1a51edf13debfcbe223fa06b1cb353b9ed9751cc
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Amelia Livingston
! This file was ported from Lean 3 source module representation_theory.group_cohomology.basic
-! leanprover-community/mathlib commit cc5dd6244981976cc9da7afc4eee5682b037a013
+! leanprover-community/mathlib commit 1a51edf13debfcbe223fa06b1cb353b9ed9751cc
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.RepresentationTheory.GroupCohomology.Resolution
/-!
# The group cohomology of a `k`-linear `G`-representation
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
Let `k` be a commutative ring and `G` a group. This file defines the group cohomology of
`A : Rep k G` to be the cohomology of the complex
$$0 \to \mathrm{Fun}(G^0, A) \to \mathrm{Fun}(G^1, A) \to \mathrm{Fun}(G^2, A) \to \dots$$
mathlib commit https://github.com/leanprover-community/mathlib/commit/5dc6092d09e5e489106865241986f7f2ad28d4c8
@@ -141,12 +141,12 @@ theorem d_eq :
Finsupp.smul_single_one _ ((-1 : k) ^ _), map_smul, d_apply]
simp only [@Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul, Fin.succAbove_zero,
diagonal_hom_equiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1)), Function.comp_apply,
- Fin.partialProd_succ, Fin.castSucc_zero, Fin.partialProd_zero, one_mul]
+ Fin.partialProd_succ, Fin.castSuccEmb_zero, Fin.partialProd_zero, one_mul]
congr 1
· congr
ext
- have := Fin.partialProd_right_inv g (Fin.castSucc x)
- simp only [mul_inv_rev, Fin.castSucc_fin_succ] at *
+ have := Fin.partialProd_right_inv g (Fin.castSuccEmb x)
+ simp only [mul_inv_rev, Fin.castSuccEmb_fin_succ] at *
rw [mul_assoc, ← mul_assoc _ _ (g x.succ), this, inv_mul_cancel_left]
·
exact
mathlib commit https://github.com/leanprover-community/mathlib/commit/9240e8be927a0955b9a82c6c85ef499ee3a626b8
@@ -80,17 +80,21 @@ namespace groupCohomology
variable [Monoid G]
+#print GroupCohomology.linearYonedaObjResolution /-
/-- 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) ℕ :=
HomologicalComplex.unop
((((linearYoneda k (Rep k G)).obj A).rightOp.mapHomologicalComplex _).obj (resolution k G))
#align group_cohomology.linear_yoneda_obj_resolution GroupCohomology.linearYonedaObjResolution
+-/
+#print GroupCohomology.linearYonedaObjResolution_d_apply /-
theorem linearYonedaObjResolution_d_apply {A : Rep k G} (i j : ℕ) (x : (resolution k G).pt i ⟶ A) :
(linearYonedaObjResolution A).d i j x = (resolution k G).d j i ≫ x :=
rfl
#align group_cohomology.linear_yoneda_obj_resolution_d_apply GroupCohomology.linearYonedaObjResolution_d_apply
+-/
end groupCohomology
@@ -98,6 +102,7 @@ namespace InhomogeneousCochains
open Rep groupCohomology
+#print InhomogeneousCochains.d /-
/-- The differential in the complex of inhomogeneous cochains used to
calculate group cohomology. -/
@[simps]
@@ -115,9 +120,11 @@ def d [Monoid G] (n : ℕ) (A : Rep k G) : ((Fin n → G) → A) →ₗ[k] (Fin
simp only [Pi.smul_apply, RingHom.id_apply, map_smul, smul_add, Finset.smul_sum, ← smul_assoc,
smul_eq_mul, mul_comm r]
#align inhomogeneous_cochains.d InhomogeneousCochains.d
+-/
variable [Group G] (n) (A : Rep k G)
+#print InhomogeneousCochains.d_eq /-
/-- 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 `linear_yoneda_obj_resolution`. -/
@@ -146,6 +153,7 @@ theorem d_eq :
Finset.sum_congr rfl fun j hj => by
rw [diagonal_hom_equiv_symm_partial_prod_succ, Fin.val_succ]
#align inhomogeneous_cochains.d_eq InhomogeneousCochains.d_eq
+-/
end InhomogeneousCochains
@@ -155,6 +163,7 @@ variable [Group G] (n) (A : Rep k G)
open InhomogeneousCochains
+#print GroupCohomology.inhomogeneousCochains /-
/-- 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`. -/
@@ -169,7 +178,9 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
LinearEquiv.toModuleIso_inv, LinearEquiv.coe_coe, LinearEquiv.symm_apply_apply, this,
LinearMap.zero_apply, map_zero, Pi.zero_apply]
#align group_cohomology.inhomogeneous_cochains GroupCohomology.inhomogeneousCochains
+-/
+#print GroupCohomology.inhomogeneousCochainsIso /-
/-- 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 :=
@@ -180,17 +191,21 @@ def inhomogeneousCochainsIso : inhomogeneousCochains A ≅ linearYonedaObjResolu
simp only [CochainComplex.of_d, d_eq, category.assoc, iso.symm_hom, iso.hom_inv_id,
category.comp_id]
#align group_cohomology.inhomogeneous_cochains_iso GroupCohomology.inhomogeneousCochainsIso
+-/
end groupCohomology
open groupCohomology
+#print groupCohomology /-
/-- 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 :=
(inhomogeneousCochains A).homology n
#align group_cohomology groupCohomology
+-/
+#print groupCohomologyIsoExt /-
/-- 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 : ℕ) :
@@ -198,4 +213,5 @@ def groupCohomologyIsoExt [Group G] (A : Rep k G) (n : ℕ) :
homologyObjIsoOfHomotopyEquiv (HomotopyEquiv.ofIso (inhomogeneousCochainsIso _)) _ ≪≫
HomologicalComplex.homologyUnop _ _ ≪≫ (extIso k G A n).symm
#align group_cohomology_iso_Ext groupCohomologyIsoExt
+-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -126,7 +126,7 @@ theorem d_eq :
(diagonalHomEquiv n A).toModuleIso.inv ≫
(linearYonedaObjResolution A).d n (n + 1) ≫ (diagonalHomEquiv (n + 1) A).toModuleIso.Hom :=
by
- ext (f g)
+ ext f g
simp only [ModuleCat.coe_comp, LinearEquiv.coe_coe, Function.comp_apply,
LinearEquiv.toModuleIso_inv, linear_yoneda_obj_resolution_d_apply, LinearEquiv.toModuleIso_hom,
diagonal_hom_equiv_apply, Action.comp_hom, resolution.d_eq k G n,
@@ -162,7 +162,7 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
CochainComplex.of (fun n => ModuleCat.of k ((Fin n → G) → A))
(fun n => InhomogeneousCochains.d n A) fun n =>
by
- ext (x y)
+ ext x y
have := LinearMap.ext_iff.1 ((linear_yoneda_obj_resolution A).d_comp_d n (n + 1) (n + 2))
simp only [ModuleCat.coe_comp, Function.comp_apply] at this
simp only [ModuleCat.coe_comp, Function.comp_apply, d_eq, LinearEquiv.toModuleIso_hom,
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -164,7 +164,7 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
by
ext (x y)
have := LinearMap.ext_iff.1 ((linear_yoneda_obj_resolution A).d_comp_d n (n + 1) (n + 2))
- simp only [ModuleCat.coe_comp, Function.comp_apply] at this
+ simp only [ModuleCat.coe_comp, Function.comp_apply] at this
simp only [ModuleCat.coe_comp, Function.comp_apply, d_eq, LinearEquiv.toModuleIso_hom,
LinearEquiv.toModuleIso_inv, LinearEquiv.coe_coe, LinearEquiv.symm_apply_apply, this,
LinearMap.zero_apply, map_zero, Pi.zero_apply]
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -194,7 +194,7 @@ def groupCohomology [Group G] (A : Rep k G) (n : ℕ) : ModuleCat k :=
/-- 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 :=
+ groupCohomology A n ≅ ((Ext k (Rep k G) n).obj (Opposite.op <| Rep.trivial k G k)).obj A :=
homologyObjIsoOfHomotopyEquiv (HomotopyEquiv.ofIso (inhomogeneousCochainsIso _)) _ ≪≫
HomologicalComplex.homologyUnop _ _ ≪≫ (extIso k G A n).symm
#align group_cohomology_iso_Ext groupCohomologyIsoExt
mathlib commit https://github.com/leanprover-community/mathlib/commit/cc5dd6244981976cc9da7afc4eee5682b037a013
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Amelia Livingston
! This file was ported from Lean 3 source module representation_theory.group_cohomology.basic
-! leanprover-community/mathlib commit ef997baa41b5c428be3fb50089a7139bf4ee886b
+! leanprover-community/mathlib commit cc5dd6244981976cc9da7afc4eee5682b037a013
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -138,8 +138,8 @@ theorem d_eq :
congr 1
· congr
ext
- have := Fin.partialProd_right_inv (1 : G) g (Fin.castSucc x)
- simp only [mul_inv_rev, Fin.coe_eq_castSucc, one_smul, Fin.castSucc_fin_succ] at *
+ have := Fin.partialProd_right_inv g (Fin.castSucc x)
+ simp only [mul_inv_rev, Fin.castSucc_fin_succ] at *
rw [mul_assoc, ← mul_assoc _ _ (g x.succ), this, inv_mul_cancel_left]
·
exact
mathlib commit https://github.com/leanprover-community/mathlib/commit/92c69b77c5a7dc0f7eeddb552508633305157caa
@@ -130,7 +130,7 @@ and the homogeneous `linearYonedaObjResolution`. -/
(linearYonedaObjResolution A).d n (n + 1) ≫
(diagonalHomEquiv (n + 1) A).toModuleIso.hom := by
ext f g
-/- Porting note: broken proof was
+/- Porting note (#11039): broken proof was
simp only [ModuleCat.coe_comp, LinearEquiv.coe_coe, Function.comp_apply,
LinearEquiv.toModuleIso_inv, linearYonedaObjResolution_d_apply, LinearEquiv.toModuleIso_hom,
diagonalHomEquiv_apply, Action.comp_hom, Resolution.d_eq k G n,
@@ -183,7 +183,7 @@ which calculates the group cohomology of `A`. -/
noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
CochainComplex.of (fun n => ModuleCat.of k ((Fin n → G) → A))
(fun n => inhomogeneousCochains.d n A) fun n => by
-/- Porting note: broken proof was
+/- Porting note (#11039): broken proof was
ext x y
have := LinearMap.ext_iff.1 ((linearYonedaObjResolution A).d_comp_d n (n + 1) (n + 2))
simp only [ModuleCat.coe_comp, Function.comp_apply] at this
@@ -16,8 +16,8 @@ Let `k` be a commutative ring and `G` a group. This file defines the group cohom
`A : Rep k G` to be the cohomology of the complex
$$0 \to \mathrm{Fun}(G^0, A) \to \mathrm{Fun}(G^1, A) \to \mathrm{Fun}(G^2, A) \to \dots$$
with differential $d^n$ sending $f: G^n \to A$ to the function mapping $(g_0, \dots, g_n)$ to
-$$\rho(g_0)(f(g_1, \dots, g_n))
-+ \sum_{i = 0}^{n - 1} (-1)^{i + 1}\cdot f(g_0, \dots, g_ig_{i + 1}, \dots, g_n)$$
+$$\rho(g_0)(f(g_1, \dots, g_n))$$
+$$+ \sum_{i = 0}^{n - 1} (-1)^{i + 1}\cdot f(g_0, \dots, g_ig_{i + 1}, \dots, g_n)$$
$$+ (-1)^{n + 1}\cdot f(g_0, \dots, g_{n - 1})$$ (where `ρ` is the representation attached to `A`).
We have a `k`-linear isomorphism $\mathrm{Fun}(G^n, A) \cong \mathrm{Hom}(k[G^{n + 1}], A)$, where
groupCohomology A n
with Hn A
for n = 0, 1, 2
(#8802)
Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>
@@ -220,6 +220,19 @@ def inhomogeneousCochainsIso : inhomogeneousCochains A ≅ linearYonedaObjResolu
Category.comp_id]
#align group_cohomology.inhomogeneous_cochains_iso groupCohomology.inhomogeneousCochainsIso
+/-- 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 := (inhomogeneousCochains A).cycles n
+
+/-- 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) :=
+ (inhomogeneousCochains A).iCycles n
+
+/-- 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 :=
+ (inhomogeneousCochains A).toCycles i j
+
end groupCohomology
open groupCohomology
@@ -230,6 +243,12 @@ def groupCohomology [Group G] (A : Rep k G) (n : ℕ) : ModuleCat k :=
(inhomogeneousCochains A).homology n
#align group_cohomology groupCohomology
+/-- 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 :=
+ (inhomogeneousCochains A).homologyπ n
+
/-- 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 : ℕ) :
@@ -135,7 +135,7 @@ and the homogeneous `linearYonedaObjResolution`. -/
LinearEquiv.toModuleIso_inv, linearYonedaObjResolution_d_apply, LinearEquiv.toModuleIso_hom,
diagonalHomEquiv_apply, Action.comp_hom, Resolution.d_eq k G n,
Resolution.d_of (Fin.partialProd g), LinearMap.map_sum,
- ←Finsupp.smul_single_one _ ((-1 : k) ^ _), map_smul, d_apply]
+ ← Finsupp.smul_single_one _ ((-1 : k) ^ _), map_smul, d_apply]
simp only [@Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul, Fin.succAbove_zero,
diagonalHomEquiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1)), Function.comp_apply,
Fin.partialProd_succ, Fin.castSucc_zero, Fin.partialProd_zero, one_mul]
@@ -155,7 +155,7 @@ and the homogeneous `linearYonedaObjResolution`. -/
erw [diagonalHomEquiv_apply, Action.comp_hom, ModuleCat.comp_def, LinearMap.comp_apply,
resolution.d_eq]
erw [resolution.d_of (Fin.partialProd g)]
- simp only [map_sum, ←Finsupp.smul_single_one _ ((-1 : k) ^ _)]
+ simp only [map_sum, ← Finsupp.smul_single_one _ ((-1 : k) ^ _)]
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
erw [d_apply, @Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul,
Fin.succAbove_zero, diagonalHomEquiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1))]
This PR refactors the construction of left derived functors using the new homology API: this also affects the dependencies (Ext functors, group cohomology, local cohomology). As a result, the old homology API is no longer used in any significant way in mathlib. Then, with this PR, the homology refactor is essentially complete.
The organization of the files was made more coherent: the definition of a projective resolution is in Preadditive.ProjectiveResolution
, the existence of resolutions when there are enough projectives is shown in Abelian.ProjectiveResolution
, and the left derived functor is constructed in Abelian.LeftDerived
; the dual results are in Preadditive.InjectiveResolution
, Abelian.InjectiveResolution
and Abelian.RightDerived
.
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@@ -85,8 +85,7 @@ variable [Monoid G]
/-- 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) ℕ :=
- HomologicalComplex.unop
- ((((linearYoneda k (Rep k G)).obj A).rightOp.mapHomologicalComplex _).obj (resolution k G))
+ (groupCohomology.resolution k G).linearYonedaObj k A
#align group_cohomology.linear_yoneda_obj_resolution groupCohomology.linearYonedaObjResolution
theorem linearYonedaObjResolution_d_apply {A : Rep k G} (i j : ℕ) (x : (resolution k G).X i ⟶ A) :
@@ -235,8 +234,7 @@ def groupCohomology [Group G] (A : Rep k G) (n : ℕ) : ModuleCat k :=
`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 :=
- ((inhomogeneousCochains A).homology'IsoHomology n).symm ≪≫
- homologyObjIsoOfHomotopyEquiv (HomotopyEquiv.ofIso (inhomogeneousCochainsIso _)) _ ≪≫
- HomologicalComplex.homology'Unop _ _ ≪≫ (extIso k G A n).symm
+ isoOfQuasiIsoAt (HomotopyEquiv.ofIso (inhomogeneousCochainsIso A)).hom n ≪≫
+ (extIso k G A n).symm
set_option linter.uppercaseLean3 false in
#align group_cohomology_iso_Ext groupCohomologyIsoExt
This PR also changes the definition of group cohomology so as to use the new homology API.
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Amelia Livingston
-/
import Mathlib.Algebra.Homology.Opposite
+import Mathlib.Algebra.Homology.ShortComplex.HomologicalComplex
import Mathlib.RepresentationTheory.GroupCohomology.Resolution
#align_import representation_theory.group_cohomology.basic from "leanprover-community/mathlib"@"cc5dd6244981976cc9da7afc4eee5682b037a013"
@@ -227,14 +228,15 @@ open groupCohomology
/-- 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 :=
- (inhomogeneousCochains A).homology' n
+ (inhomogeneousCochains A).homology n
#align group_cohomology groupCohomology
/-- 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 :=
- homologyObjIsoOfHomotopyEquiv (HomotopyEquiv.ofIso (inhomogeneousCochainsIso _)) _ ≪≫
+ ((inhomogeneousCochains A).homology'IsoHomology n).symm ≪≫
+ homologyObjIsoOfHomotopyEquiv (HomotopyEquiv.ofIso (inhomogeneousCochainsIso _)) _ ≪≫
HomologicalComplex.homology'Unop _ _ ≪≫ (extIso k G A n).symm
set_option linter.uppercaseLean3 false in
#align group_cohomology_iso_Ext groupCohomologyIsoExt
This PR renames definitions of the current homology API (adding a '
to homology
, cycles
, QuasiIso
) so as to create space for the development of the new homology API of homological complexes: this PR also contains the new definition of HomologicalComplex.homology
which involves the homology theory of short complexes.
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@@ -227,7 +227,7 @@ open groupCohomology
/-- 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 :=
- (inhomogeneousCochains A).homology n
+ (inhomogeneousCochains A).homology' n
#align group_cohomology groupCohomology
/-- The `n`th group cohomology of a `k`-linear `G`-representation `A` is isomorphic to
@@ -235,6 +235,6 @@ def groupCohomology [Group G] (A : Rep k G) (n : ℕ) : ModuleCat k :=
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 :=
homologyObjIsoOfHomotopyEquiv (HomotopyEquiv.ofIso (inhomogeneousCochainsIso _)) _ ≪≫
- HomologicalComplex.homologyUnop _ _ ≪≫ (extIso k G A n).symm
+ HomologicalComplex.homology'Unop _ _ ≪≫ (extIso k G A n).symm
set_option linter.uppercaseLean3 false in
#align group_cohomology_iso_Ext groupCohomologyIsoExt
@@ -30,6 +30,10 @@ This gives us for free a proof that our $d^n$ squares to zero. It also gives us
$\mathrm{H}^n(G, A) \cong \mathrm{Ext}^n(k, A),$ where $\mathrm{Ext}$ is taken in the category
`Rep k G`.
+To talk about cohomology in low degree, please see the file
+`RepresentationTheory.GroupCohomology.LowDegree`, which gives simpler expressions for `H⁰, H¹, H²`
+than the definition `groupCohomology` in this file.
+
## Main definitions
* `groupCohomology.linearYonedaObjResolution A`: a complex whose objects are the representation
@@ -38,7 +42,7 @@ $\mathrm{H}^n(G, A)$.
* `groupCohomology.inhomogeneousCochains A`: a complex whose objects are
$\mathrm{Fun}(G^n, A)$ and whose cohomology is the group cohomology $\mathrm{H}^n(G, A).$
* `groupCohomology.inhomogeneousCochainsIso A`: an isomorphism between the above two complexes.
-* `group_cohomology A n`: this is $\mathrm{H}^n(G, A),$ defined as the $n$th cohomology of the
+* `groupCohomology A n`: this is $\mathrm{H}^n(G, A),$ defined as the $n$th cohomology of the
second complex, `inhomogeneousCochains A`.
* `groupCohomologyIsoExt A n`: an isomorphism $\mathrm{H}^n(G, A) \cong \mathrm{Ext}^n(k, A)$
(where $\mathrm{Ext}$ is taken in the category `Rep k G`) induced by `inhomogeneousCochainsIso A`.
@@ -199,6 +203,11 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
exact map_zero _
#align group_cohomology.inhomogeneous_cochains groupCohomology.inhomogeneousCochains
+@[simp]
+theorem inhomogeneousCochains.d_def (n : ℕ) :
+ (inhomogeneousCochains A).d n (n + 1) = inhomogeneousCochains.d n A :=
+ CochainComplex.of_d _ _ _ _
+
/-- 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 := by
@@ -32,12 +32,12 @@ $\mathrm{H}^n(G, A) \cong \mathrm{Ext}^n(k, A),$ where $\mathrm{Ext}$ is taken i
## Main definitions
-* `GroupCohomology.linearYonedaObjResolution A`: a complex whose objects are the representation
+* `groupCohomology.linearYonedaObjResolution A`: a complex whose objects are the representation
morphisms $\mathrm{Hom}(k[G^{n + 1}], A)$ and whose cohomology is the group cohomology
$\mathrm{H}^n(G, A)$.
-* `GroupCohomology.inhomogeneousCochains A`: a complex whose objects are
+* `groupCohomology.inhomogeneousCochains A`: a complex whose objects are
$\mathrm{Fun}(G^n, A)$ and whose cohomology is the group cohomology $\mathrm{H}^n(G, A).$
-* `GroupCohomology.inhomogeneousCochainsIso A`: an isomorphism between the above two complexes.
+* `groupCohomology.inhomogeneousCochainsIso A`: an isomorphism between the above two complexes.
* `group_cohomology A n`: this is $\mathrm{H}^n(G, A),$ defined as the $n$th cohomology of the
second complex, `inhomogeneousCochains A`.
* `groupCohomologyIsoExt A n`: an isomorphism $\mathrm{H}^n(G, A) \cong \mathrm{Ext}^n(k, A)$
@@ -73,7 +73,7 @@ variable {k G : Type u} [CommRing k] {n : ℕ}
open CategoryTheory
-namespace GroupCohomology
+namespace groupCohomology
variable [Monoid G]
@@ -82,18 +82,18 @@ variable [Monoid G]
abbrev linearYonedaObjResolution (A : Rep k G) : CochainComplex (ModuleCat.{u} k) ℕ :=
HomologicalComplex.unop
((((linearYoneda k (Rep k G)).obj A).rightOp.mapHomologicalComplex _).obj (resolution k G))
-#align group_cohomology.linear_yoneda_obj_resolution GroupCohomology.linearYonedaObjResolution
+#align group_cohomology.linear_yoneda_obj_resolution groupCohomology.linearYonedaObjResolution
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 :=
rfl
-#align group_cohomology.linear_yoneda_obj_resolution_d_apply GroupCohomology.linearYonedaObjResolution_d_apply
+#align group_cohomology.linear_yoneda_obj_resolution_d_apply groupCohomology.linearYonedaObjResolution_d_apply
-end GroupCohomology
+end groupCohomology
-namespace InhomogeneousCochains
+namespace inhomogeneousCochains
-open Rep GroupCohomology
+open Rep groupCohomology
/-- The differential in the complex of inhomogeneous cochains used to
calculate group cohomology. -/
@@ -112,7 +112,7 @@ def d [Monoid G] (n : ℕ) (A : Rep k G) : ((Fin n → G) → A) →ₗ[k] (Fin
/- Porting note: changed from `simp only` which needed extra heartbeats -/
simp_rw [Pi.smul_apply, RingHom.id_apply, map_smul, smul_add, Finset.smul_sum, ← smul_assoc,
smul_eq_mul, mul_comm r]
-#align inhomogeneous_cochains.d InhomogeneousCochains.d
+#align inhomogeneous_cochains.d inhomogeneousCochains.d
variable [Group G] (n) (A : Rep k G)
@@ -149,10 +149,9 @@ and the homogeneous `linearYonedaObjResolution`. -/
((resolution k G).d (n + 1) n ≫ (diagonalHomEquiv n A).symm f) g
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
erw [diagonalHomEquiv_apply, Action.comp_hom, ModuleCat.comp_def, LinearMap.comp_apply,
- Resolution.d_eq]
- erw [Resolution.d_of (Fin.partialProd g)]
- rw [map_sum]
- simp only [←Finsupp.smul_single_one _ ((-1 : k) ^ _)]
+ resolution.d_eq]
+ erw [resolution.d_of (Fin.partialProd g)]
+ simp only [map_sum, ←Finsupp.smul_single_one _ ((-1 : k) ^ _)]
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
erw [d_apply, @Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul,
Fin.succAbove_zero, diagonalHomEquiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1))]
@@ -164,22 +163,22 @@ and the homogeneous `linearYonedaObjResolution`. -/
rw [mul_assoc, ← mul_assoc _ _ (g x.succ), this, inv_mul_cancel_left]
· -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
erw [map_smul, diagonalHomEquiv_symm_partialProd_succ, Fin.val_succ]
-#align inhomogeneous_cochains.d_eq InhomogeneousCochains.d_eq
+#align inhomogeneous_cochains.d_eq inhomogeneousCochains.d_eq
-end InhomogeneousCochains
+end inhomogeneousCochains
-namespace GroupCohomology
+namespace groupCohomology
variable [Group G] (n) (A : Rep k G)
-open InhomogeneousCochains
+open inhomogeneousCochains
/-- 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) ℕ :=
CochainComplex.of (fun n => ModuleCat.of k ((Fin n → G) → A))
- (fun n => InhomogeneousCochains.d n A) fun n => by
+ (fun n => inhomogeneousCochains.d n A) fun n => by
/- Porting note: broken proof was
ext x y
have := LinearMap.ext_iff.1 ((linearYonedaObjResolution A).d_comp_d n (n + 1) (n + 2))
@@ -198,7 +197,7 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
rewrite the second `coe_coe`... -/
erw [LinearEquiv.symm_apply_apply, this]
exact map_zero _
-#align group_cohomology.inhomogeneous_cochains GroupCohomology.inhomogeneousCochains
+#align group_cohomology.inhomogeneous_cochains groupCohomology.inhomogeneousCochains
/-- 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. -/
@@ -210,11 +209,11 @@ def inhomogeneousCochainsIso : inhomogeneousCochains A ≅ linearYonedaObjResolu
subst h
simp only [CochainComplex.of_d, d_eq, Category.assoc, Iso.symm_hom, Iso.hom_inv_id,
Category.comp_id]
-#align group_cohomology.inhomogeneous_cochains_iso GroupCohomology.inhomogeneousCochainsIso
+#align group_cohomology.inhomogeneous_cochains_iso groupCohomology.inhomogeneousCochainsIso
-end GroupCohomology
+end groupCohomology
-open GroupCohomology
+open groupCohomology
/-- The group cohomology of a `k`-linear `G`-representation `A`, as the cohomology of its complex
of inhomogeneous cochains. -/
@@ -117,7 +117,6 @@ def d [Monoid G] (n : ℕ) (A : Rep k G) : ((Fin n → G) → A) →ₗ[k] (Fin
variable [Group G] (n) (A : Rep k G)
/- Porting note: linter says the statement doesn't typecheck, so we add `@[nolint checkType]` -/
-set_option maxHeartbeats 700000 in
/-- 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`. -/
@@ -148,12 +147,14 @@ and the homogeneous `linearYonedaObjResolution`. -/
-- https://github.com/leanprover-community/mathlib4/issues/5164
change d n A f g = diagonalHomEquiv (n + 1) A
((resolution k G).d (n + 1) n ≫ (diagonalHomEquiv n A).symm f) g
- rw [diagonalHomEquiv_apply, Action.comp_hom, ModuleCat.comp_def, LinearMap.comp_apply,
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [diagonalHomEquiv_apply, Action.comp_hom, ModuleCat.comp_def, LinearMap.comp_apply,
Resolution.d_eq]
erw [Resolution.d_of (Fin.partialProd g)]
rw [map_sum]
simp only [←Finsupp.smul_single_one _ ((-1 : k) ^ _)]
- rw [d_apply, @Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul,
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [d_apply, @Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul,
Fin.succAbove_zero, diagonalHomEquiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1))]
simp_rw [Function.comp_apply, Fin.partialProd_succ, Fin.castSucc_zero,
Fin.partialProd_zero, one_mul]
@@ -161,7 +162,8 @@ and the homogeneous `linearYonedaObjResolution`. -/
· have := Fin.partialProd_right_inv g (Fin.castSucc x)
simp only [mul_inv_rev, Fin.castSucc_fin_succ] at this ⊢
rw [mul_assoc, ← mul_assoc _ _ (g x.succ), this, inv_mul_cancel_left]
- · rw [map_smul, diagonalHomEquiv_symm_partialProd_succ, Fin.val_succ]
+ · -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [map_smul, diagonalHomEquiv_symm_partialProd_succ, Fin.val_succ]
#align inhomogeneous_cochains.d_eq InhomogeneousCochains.d_eq
end InhomogeneousCochains
@@ -172,7 +174,6 @@ variable [Group G] (n) (A : Rep k G)
open InhomogeneousCochains
-set_option maxHeartbeats 2400000 in
/-- 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`. -/
@@ -199,7 +200,6 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
exact map_zero _
#align group_cohomology.inhomogeneous_cochains GroupCohomology.inhomogeneousCochains
-set_option maxHeartbeats 2000000 in
/-- 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 := by
@@ -222,7 +222,6 @@ def groupCohomology [Group G] (A : Rep k G) (n : ℕ) : ModuleCat k :=
(inhomogeneousCochains A).homology n
#align group_cohomology groupCohomology
-set_option maxHeartbeats 3200000 in
/-- 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 : ℕ) :
@@ -117,6 +117,7 @@ def d [Monoid G] (n : ℕ) (A : Rep k G) : ((Fin n → G) → A) →ₗ[k] (Fin
variable [Group G] (n) (A : Rep k G)
/- Porting note: linter says the statement doesn't typecheck, so we add `@[nolint checkType]` -/
+set_option maxHeartbeats 700000 in
/-- 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`. -/
@@ -147,14 +148,12 @@ and the homogeneous `linearYonedaObjResolution`. -/
-- https://github.com/leanprover-community/mathlib4/issues/5164
change d n A f g = diagonalHomEquiv (n + 1) A
((resolution k G).d (n + 1) n ≫ (diagonalHomEquiv n A).symm f) g
- -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
- erw [diagonalHomEquiv_apply, Action.comp_hom, ModuleCat.comp_def, LinearMap.comp_apply,
+ rw [diagonalHomEquiv_apply, Action.comp_hom, ModuleCat.comp_def, LinearMap.comp_apply,
Resolution.d_eq]
erw [Resolution.d_of (Fin.partialProd g)]
rw [map_sum]
simp only [←Finsupp.smul_single_one _ ((-1 : k) ^ _)]
- -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
- erw [d_apply, @Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul,
+ rw [d_apply, @Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul,
Fin.succAbove_zero, diagonalHomEquiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1))]
simp_rw [Function.comp_apply, Fin.partialProd_succ, Fin.castSucc_zero,
Fin.partialProd_zero, one_mul]
@@ -162,8 +161,7 @@ and the homogeneous `linearYonedaObjResolution`. -/
· have := Fin.partialProd_right_inv g (Fin.castSucc x)
simp only [mul_inv_rev, Fin.castSucc_fin_succ] at this ⊢
rw [mul_assoc, ← mul_assoc _ _ (g x.succ), this, inv_mul_cancel_left]
- · -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
- erw [map_smul, diagonalHomEquiv_symm_partialProd_succ, Fin.val_succ]
+ · rw [map_smul, diagonalHomEquiv_symm_partialProd_succ, Fin.val_succ]
#align inhomogeneous_cochains.d_eq InhomogeneousCochains.d_eq
end InhomogeneousCochains
@@ -174,6 +172,7 @@ variable [Group G] (n) (A : Rep k G)
open InhomogeneousCochains
+set_option maxHeartbeats 2400000 in
/-- 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`. -/
@@ -200,6 +199,7 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
exact map_zero _
#align group_cohomology.inhomogeneous_cochains GroupCohomology.inhomogeneousCochains
+set_option maxHeartbeats 2000000 in
/-- 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 := by
@@ -222,6 +222,7 @@ def groupCohomology [Group G] (A : Rep k G) (n : ℕ) : ModuleCat k :=
(inhomogeneousCochains A).homology n
#align group_cohomology groupCohomology
+set_option maxHeartbeats 3200000 in
/-- 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 : ℕ) :
@@ -117,7 +117,6 @@ def d [Monoid G] (n : ℕ) (A : Rep k G) : ((Fin n → G) → A) →ₗ[k] (Fin
variable [Group G] (n) (A : Rep k G)
/- Porting note: linter says the statement doesn't typecheck, so we add `@[nolint checkType]` -/
-set_option maxHeartbeats 700000 in
/-- 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`. -/
@@ -148,12 +147,14 @@ and the homogeneous `linearYonedaObjResolution`. -/
-- https://github.com/leanprover-community/mathlib4/issues/5164
change d n A f g = diagonalHomEquiv (n + 1) A
((resolution k G).d (n + 1) n ≫ (diagonalHomEquiv n A).symm f) g
- rw [diagonalHomEquiv_apply, Action.comp_hom, ModuleCat.comp_def, LinearMap.comp_apply,
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [diagonalHomEquiv_apply, Action.comp_hom, ModuleCat.comp_def, LinearMap.comp_apply,
Resolution.d_eq]
erw [Resolution.d_of (Fin.partialProd g)]
rw [map_sum]
simp only [←Finsupp.smul_single_one _ ((-1 : k) ^ _)]
- rw [d_apply, @Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul,
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [d_apply, @Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul,
Fin.succAbove_zero, diagonalHomEquiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1))]
simp_rw [Function.comp_apply, Fin.partialProd_succ, Fin.castSucc_zero,
Fin.partialProd_zero, one_mul]
@@ -161,7 +162,8 @@ and the homogeneous `linearYonedaObjResolution`. -/
· have := Fin.partialProd_right_inv g (Fin.castSucc x)
simp only [mul_inv_rev, Fin.castSucc_fin_succ] at this ⊢
rw [mul_assoc, ← mul_assoc _ _ (g x.succ), this, inv_mul_cancel_left]
- · rw [map_smul, diagonalHomEquiv_symm_partialProd_succ, Fin.val_succ]
+ · -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [map_smul, diagonalHomEquiv_symm_partialProd_succ, Fin.val_succ]
#align inhomogeneous_cochains.d_eq InhomogeneousCochains.d_eq
end InhomogeneousCochains
@@ -172,7 +174,6 @@ variable [Group G] (n) (A : Rep k G)
open InhomogeneousCochains
-set_option maxHeartbeats 2400000 in
/-- 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`. -/
@@ -199,7 +200,6 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
exact map_zero _
#align group_cohomology.inhomogeneous_cochains GroupCohomology.inhomogeneousCochains
-set_option maxHeartbeats 2000000 in
/-- 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 := by
@@ -222,7 +222,6 @@ def groupCohomology [Group G] (A : Rep k G) (n : ℕ) : ModuleCat k :=
(inhomogeneousCochains A).homology n
#align group_cohomology groupCohomology
-set_option maxHeartbeats 3200000 in
/-- 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 : ℕ) :
_root_.map_sum
more consistently (#7189)
Also _root_.map_smul
when in the neighbourhood.
@@ -151,7 +151,7 @@ and the homogeneous `linearYonedaObjResolution`. -/
rw [diagonalHomEquiv_apply, Action.comp_hom, ModuleCat.comp_def, LinearMap.comp_apply,
Resolution.d_eq]
erw [Resolution.d_of (Fin.partialProd g)]
- rw [LinearMap.map_sum]
+ rw [map_sum]
simp only [←Finsupp.smul_single_one _ ((-1 : k) ^ _)]
rw [d_apply, @Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul,
Fin.succAbove_zero, diagonalHomEquiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1))]
@@ -117,7 +117,7 @@ def d [Monoid G] (n : ℕ) (A : Rep k G) : ((Fin n → G) → A) →ₗ[k] (Fin
variable [Group G] (n) (A : Rep k G)
/- Porting note: linter says the statement doesn't typecheck, so we add `@[nolint checkType]` -/
-set_option maxHeartbeats 800000 in
+set_option maxHeartbeats 700000 in
/-- 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`. -/
@@ -172,7 +172,7 @@ variable [Group G] (n) (A : Rep k G)
open InhomogeneousCochains
-set_option maxHeartbeats 3200000 in
+set_option maxHeartbeats 2400000 in
/-- 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`. -/
@@ -199,7 +199,7 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
exact map_zero _
#align group_cohomology.inhomogeneous_cochains GroupCohomology.inhomogeneousCochains
-set_option maxHeartbeats 3200000 in
+set_option maxHeartbeats 2000000 in
/-- 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 := by
@@ -117,7 +117,7 @@ def d [Monoid G] (n : ℕ) (A : Rep k G) : ((Fin n → G) → A) →ₗ[k] (Fin
variable [Group G] (n) (A : Rep k G)
/- Porting note: linter says the statement doesn't typecheck, so we add `@[nolint checkType]` -/
-set_option maxHeartbeats 1600000 in
+set_option maxHeartbeats 800000 in
/-- 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`. -/
@@ -172,7 +172,7 @@ variable [Group G] (n) (A : Rep k G)
open InhomogeneousCochains
-set_option maxHeartbeats 6400000 in
+set_option maxHeartbeats 3200000 in
/-- 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`. -/
@@ -199,7 +199,7 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
exact map_zero _
#align group_cohomology.inhomogeneous_cochains GroupCohomology.inhomogeneousCochains
-set_option maxHeartbeats 6400000 in
+set_option maxHeartbeats 3200000 in
/-- 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 := by
maxHeartbeats
(#6206)
git ls-files '*.lean' | xargs sed -i "s=maxHeartbeats [0-9]*$=& in="
Affected files:
Mathlib/CategoryTheory/Monoidal/Braided.lean:479:set_option maxHeartbeats 400000
Mathlib/FieldTheory/Adjoin.lean:1212:set_option synthInstance.maxHeartbeats 30000
Mathlib/FieldTheory/IsAlgClosed/Basic.lean:302:set_option maxHeartbeats 800000
Mathlib/FieldTheory/IsAlgClosed/Basic.lean:303:set_option synthInstance.maxHeartbeats 400000
Mathlib/RepresentationTheory/GroupCohomology/Basic.lean:202:set_option maxHeartbeats 6400000
Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean:345:set_option maxHeartbeats 800000
Mathlib/Topology/MetricSpace/GromovHausdorff.lean:415:set_option maxHeartbeats 300000
@@ -199,7 +199,7 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
exact map_zero _
#align group_cohomology.inhomogeneous_cochains GroupCohomology.inhomogeneousCochains
-set_option maxHeartbeats 6400000
+set_option maxHeartbeats 6400000 in
/-- 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 := by
@@ -2,15 +2,12 @@
Copyright (c) 2023 Amelia Livingston. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Amelia Livingston
-
-! This file was ported from Lean 3 source module representation_theory.group_cohomology.basic
-! leanprover-community/mathlib commit cc5dd6244981976cc9da7afc4eee5682b037a013
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.Homology.Opposite
import Mathlib.RepresentationTheory.GroupCohomology.Resolution
+#align_import representation_theory.group_cohomology.basic from "leanprover-community/mathlib"@"cc5dd6244981976cc9da7afc4eee5682b037a013"
+
/-!
# The group cohomology of a `k`-linear `G`-representation
Co-authored-by: Komyyy <pol_tta@outlook.jp> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>
@@ -138,12 +138,12 @@ and the homogeneous `linearYonedaObjResolution`. -/
←Finsupp.smul_single_one _ ((-1 : k) ^ _), map_smul, d_apply]
simp only [@Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul, Fin.succAbove_zero,
diagonalHomEquiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1)), Function.comp_apply,
- Fin.partialProd_succ, Fin.castSuccEmb_zero, Fin.partialProd_zero, one_mul]
+ Fin.partialProd_succ, Fin.castSucc_zero, Fin.partialProd_zero, one_mul]
congr 1
· congr
ext
- have := Fin.partialProd_right_inv g (Fin.castSuccEmb x)
- simp only [mul_inv_rev, Fin.castSuccEmb_fin_succ] at *
+ have := Fin.partialProd_right_inv g (Fin.castSucc x)
+ simp only [mul_inv_rev, Fin.castSucc_fin_succ] at *
rw [mul_assoc, ← mul_assoc _ _ (g x.succ), this, inv_mul_cancel_left]
· exact Finset.sum_congr rfl fun j hj => by
rw [diagonalHomEquiv_symm_partialProd_succ, Fin.val_succ] -/
@@ -158,11 +158,11 @@ and the homogeneous `linearYonedaObjResolution`. -/
simp only [←Finsupp.smul_single_one _ ((-1 : k) ^ _)]
rw [d_apply, @Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul,
Fin.succAbove_zero, diagonalHomEquiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1))]
- simp_rw [Function.comp_apply, Fin.partialProd_succ, Fin.castSuccEmb_zero,
+ simp_rw [Function.comp_apply, Fin.partialProd_succ, Fin.castSucc_zero,
Fin.partialProd_zero, one_mul]
rcongr x
- · have := Fin.partialProd_right_inv g (Fin.castSuccEmb x)
- simp only [mul_inv_rev, Fin.castSuccEmb_fin_succ] at this ⊢
+ · have := Fin.partialProd_right_inv g (Fin.castSucc x)
+ simp only [mul_inv_rev, Fin.castSucc_fin_succ] at this ⊢
rw [mul_assoc, ← mul_assoc _ _ (g x.succ), this, inv_mul_cancel_left]
· rw [map_smul, diagonalHomEquiv_symm_partialProd_succ, Fin.val_succ]
#align inhomogeneous_cochains.d_eq InhomogeneousCochains.d_eq
@@ -138,12 +138,12 @@ and the homogeneous `linearYonedaObjResolution`. -/
←Finsupp.smul_single_one _ ((-1 : k) ^ _), map_smul, d_apply]
simp only [@Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul, Fin.succAbove_zero,
diagonalHomEquiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1)), Function.comp_apply,
- Fin.partialProd_succ, Fin.castSucc_zero, Fin.partialProd_zero, one_mul]
+ Fin.partialProd_succ, Fin.castSuccEmb_zero, Fin.partialProd_zero, one_mul]
congr 1
· congr
ext
- have := Fin.partialProd_right_inv g (Fin.castSucc x)
- simp only [mul_inv_rev, Fin.castSucc_fin_succ] at *
+ have := Fin.partialProd_right_inv g (Fin.castSuccEmb x)
+ simp only [mul_inv_rev, Fin.castSuccEmb_fin_succ] at *
rw [mul_assoc, ← mul_assoc _ _ (g x.succ), this, inv_mul_cancel_left]
· exact Finset.sum_congr rfl fun j hj => by
rw [diagonalHomEquiv_symm_partialProd_succ, Fin.val_succ] -/
@@ -158,11 +158,11 @@ and the homogeneous `linearYonedaObjResolution`. -/
simp only [←Finsupp.smul_single_one _ ((-1 : k) ^ _)]
rw [d_apply, @Fin.sum_univ_succ _ _ (n + 1), Fin.val_zero, pow_zero, one_smul,
Fin.succAbove_zero, diagonalHomEquiv_symm_apply f (Fin.partialProd g ∘ @Fin.succ (n + 1))]
- simp_rw [Function.comp_apply, Fin.partialProd_succ, Fin.castSucc_zero,
+ simp_rw [Function.comp_apply, Fin.partialProd_succ, Fin.castSuccEmb_zero,
Fin.partialProd_zero, one_mul]
rcongr x
- · have := Fin.partialProd_right_inv g (Fin.castSucc x)
- simp only [mul_inv_rev, Fin.castSucc_fin_succ] at this ⊢
+ · have := Fin.partialProd_right_inv g (Fin.castSuccEmb x)
+ simp only [mul_inv_rev, Fin.castSuccEmb_fin_succ] at this ⊢
rw [mul_assoc, ← mul_assoc _ _ (g x.succ), this, inv_mul_cancel_left]
· rw [map_smul, diagonalHomEquiv_symm_partialProd_succ, Fin.val_succ]
#align inhomogeneous_cochains.d_eq InhomogeneousCochains.d_eq
The unported dependencies are
category_theory.functor.left_derived
algebra.order.module
init.core
category_theory.abelian.projective
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
category_theory.functor.inv_isos
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file