Skip to content

Commit 3ffff9e

Browse files
Amelia Livingston101damnations
andcommitted
refactor(Algebra/Homology/ShortComplex/ModuleCat, RepresentationTheory/GroupCohomology/*): unfold CategoryTheory.ShortComplex.moduleCatLeftHomologyData less eagerly (#24696)
`ShortComplex.moduleCatLeftHomologyData` represents the homology of a short complex in `ModuleCat` as a concrete quotient of a `LinearMap.ker` by a `LinearMap.range`. When working on the level of linear maps - i.e. `ModuleCat.Hom.hom` of a morphism in `ModuleCat` - simp lemmas unfolding this concrete definition are useful. But when reasoning about morphisms in `ModuleCat` it seems handy not to unfold the definition, so that `simp` can apply the general `LeftHomologyData` API. To that end, this PR replaces simp lemmas `ShortComplex.moduleCatLeftHomologyData_i, ShortComplex.moduleCatLeftHomologyData_π` with their linear map versions, `ShortComplex.moduleCatLeftHomologyData_i_hom, ShortComplex.moduleCatLeftHomologyData_π_hom`. It also rephrases declarations about `ModuleCat` morphisms in the group cohomology folder in terms of `ShortComplex.moduleCatLeftHomologyData` rather than unfolding. Deletions: - CategoryTheory.ShortComplex.moduleCatHomology - CategoryTheory.ShortComplex.moduleCatHomologyπ - CategoryTheory.ShortComplex.moduleCatLeftHomologyData_i - CategoryTheory.ShortComplex.moduleCatLeftHomologyData_π - CategoryTheory.ShortComplex.moduleCatLeftHomologyData_f' Co-authored-by: 101damnations <al3717@ic.ac.uk>
1 parent 46a4e37 commit 3ffff9e

File tree

3 files changed

+111
-78
lines changed

3 files changed

+111
-78
lines changed

Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean

Lines changed: 50 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -95,83 +95,102 @@ def moduleCatToCycles : S.X₁ →ₗ[R] LinearMap.ker S.g.hom where
9595
map_add' x y := by aesop
9696
map_smul' a x := by aesop
9797

98-
/-- The homology of `S`, defined as the quotient of the kernel of `S.g` by
99-
the image of `S.moduleCatToCycles` -/
100-
abbrev moduleCatHomology :=
101-
ModuleCat.of R (LinearMap.ker S.g.hom ⧸ LinearMap.range S.moduleCatToCycles)
102-
103-
/-- The canonical map `ModuleCat.of R (LinearMap.ker S.g) ⟶ S.moduleCatHomology`. -/
104-
abbrev moduleCatHomologyπ : ModuleCat.of R (LinearMap.ker S.g.hom) ⟶ S.moduleCatHomology :=
105-
ModuleCat.ofHom (LinearMap.range S.moduleCatToCycles).mkQ
106-
10798
/-- The explicit left homology data of a short complex of modules that is
108-
given by a kernel and a quotient given by the `LinearMap` API. -/
109-
@[simps K H i π]
99+
given by a kernel and a quotient given by the `LinearMap` API. The projections to `K` and `H` are
100+
not simp lemmas because the generic lemmas about `LeftHomologyData` are more useful here. -/
101+
@[simps! i_hom π_hom, simps! -isSimp K H]
110102
def moduleCatLeftHomologyData : S.LeftHomologyData where
111103
K := ModuleCat.of R (LinearMap.ker S.g.hom)
112-
H := S.moduleCatHomology
104+
H := ModuleCat.of R (LinearMap.ker S.g.hom ⧸ LinearMap.range S.moduleCatToCycles)
113105
i := ModuleCat.ofHom (LinearMap.ker S.g.hom).subtype
114-
π := S.moduleCatHomologyπ
106+
π := ModuleCat.ofHom (LinearMap.range S.moduleCatToCycles).mkQ
115107
wi := by aesop
116108
hi := ModuleCat.kernelIsLimit _
117109
wπ := by aesop
118110
hπ := ModuleCat.cokernelIsColimit (ModuleCat.ofHom S.moduleCatToCycles)
119111

112+
/-- The homology of a short complex of modules as a concrete quotient. -/
113+
@[deprecated "This abbreviation is now inlined" (since := "2025-05-14")]
114+
abbrev moduleCatHomology := S.moduleCatLeftHomologyData.H
115+
116+
/-- The natural projection map to the homology of a short complex of modules as a
117+
concrete quotient. -/
118+
@[deprecated "This abbreviation is now inlined" (since := "2025-05-14")]
119+
abbrev moduleCatHomologyπ := S.moduleCatLeftHomologyData.π
120+
121+
@[deprecated (since := "2025-05-09")]
122+
alias moduleCatLeftHomologyData_i := moduleCatLeftHomologyData_i_hom
123+
124+
@[deprecated (since := "2025-05-09")]
125+
alias moduleCatLeftHomologyData_π := moduleCatLeftHomologyData_π_hom
126+
120127
@[simp]
121-
lemma moduleCatLeftHomologyData_f' :
122-
S.moduleCatLeftHomologyData.f' = ModuleCat.ofHom S.moduleCatToCycles := rfl
128+
lemma moduleCatLeftHomologyData_f'_hom :
129+
S.moduleCatLeftHomologyData.f'.hom = S.moduleCatToCycles := rfl
123130

124-
instance : Epi S.moduleCatHomologyπ :=
125-
(inferInstance : Epi S.moduleCatLeftHomologyData.π)
131+
@[deprecated (since := "2025-05-09")]
132+
alias moduleCatLeftHomologyData_f' := moduleCatLeftHomologyData_f'_hom
133+
134+
@[simp]
135+
lemma moduleCatLeftHomologyData_descH_hom {M : ModuleCat R}
136+
(φ : S.moduleCatLeftHomologyData.K ⟶ M) (h : S.moduleCatLeftHomologyData.f' ≫ φ = 0) :
137+
(S.moduleCatLeftHomologyData.descH φ h).hom =
138+
(LinearMap.range <| ModuleCat.Hom.hom _).liftQ
139+
φ.hom (LinearMap.range_le_ker_iff.2 <| ModuleCat.hom_ext_iff.1 h) := rfl
140+
141+
@[simp]
142+
lemma moduleCatLeftHomologyData_liftK_hom {M : ModuleCat R} (φ : M ⟶ S.X₂) (h : φ ≫ S.g = 0) :
143+
(S.moduleCatLeftHomologyData.liftK φ h).hom =
144+
φ.hom.codRestrict (LinearMap.ker S.g.hom) (fun m => congr($h m)) := rfl
126145

127146
/-- Given a short complex `S` of modules, this is the isomorphism between
128147
the abstract `S.cycles` of the homology API and the more concrete description as
129148
`LinearMap.ker S.g`. -/
130-
noncomputable def moduleCatCyclesIso : S.cycles ≅ ModuleCat.of R (LinearMap.ker S.g.hom) :=
149+
noncomputable def moduleCatCyclesIso : S.cycles ≅ S.moduleCatLeftHomologyData.K :=
131150
S.moduleCatLeftHomologyData.cyclesIso
132151

133152
@[reassoc (attr := simp, elementwise)]
134-
lemma moduleCatCyclesIso_hom_subtype :
135-
S.moduleCatCyclesIso.hom ≫ ModuleCat.ofHom (LinearMap.ker S.g.hom).subtype = S.iCycles :=
153+
lemma moduleCatCyclesIso_hom_i :
154+
S.moduleCatCyclesIso.hom ≫ S.moduleCatLeftHomologyData.i = S.iCycles :=
136155
S.moduleCatLeftHomologyData.cyclesIso_hom_comp_i
137156

157+
@[deprecated (since := "2025-05-09")]
158+
alias moduleCatCyclesIso_hom_subtype := moduleCatCyclesIso_hom_i
159+
138160
@[reassoc (attr := simp, elementwise)]
139161
lemma moduleCatCyclesIso_inv_iCycles :
140-
S.moduleCatCyclesIso.inv ≫ S.iCycles = ModuleCat.ofHom (LinearMap.ker S.g.hom).subtype :=
162+
S.moduleCatCyclesIso.inv ≫ S.iCycles = S.moduleCatLeftHomologyData.i :=
141163
S.moduleCatLeftHomologyData.cyclesIso_inv_comp_iCycles
142164

143165
@[reassoc (attr := simp, elementwise)]
144166
lemma toCycles_moduleCatCyclesIso_hom :
145-
S.toCycles ≫ S.moduleCatCyclesIso.hom = ModuleCat.ofHom S.moduleCatToCycles := by
146-
rw [← cancel_mono S.moduleCatLeftHomologyData.i, moduleCatLeftHomologyData_i,
147-
Category.assoc, S.moduleCatCyclesIso_hom_subtype, toCycles_i]
148-
rfl
167+
S.toCycles ≫ S.moduleCatCyclesIso.hom = S.moduleCatLeftHomologyData.f' := by
168+
simp [← cancel_mono S.moduleCatLeftHomologyData.i]
149169

150170
/-- Given a short complex `S` of modules, this is the isomorphism between
151171
the abstract `S.homology` of the homology API and the more explicit
152172
quotient of `LinearMap.ker S.g` by the image of
153173
`S.moduleCatToCycles : S.X₁ →ₗ[R] LinearMap.ker S.g`. -/
154174
noncomputable def moduleCatHomologyIso :
155-
S.homology ≅ S.moduleCatHomology :=
175+
S.homology ≅ S.moduleCatLeftHomologyData.H :=
156176
S.moduleCatLeftHomologyData.homologyIso
157177

158178
@[reassoc (attr := simp, elementwise)]
159179
lemma π_moduleCatCyclesIso_hom :
160180
S.homologyπ ≫ S.moduleCatHomologyIso.hom =
161-
S.moduleCatCyclesIso.hom ≫ S.moduleCatHomologyπ :=
181+
S.moduleCatCyclesIso.hom ≫ S.moduleCatLeftHomologyData.π :=
162182
S.moduleCatLeftHomologyData.homologyπ_comp_homologyIso_hom
163183

164184
@[reassoc (attr := simp, elementwise)]
165185
lemma moduleCatCyclesIso_inv_π :
166186
S.moduleCatCyclesIso.inv ≫ S.homologyπ =
167-
S.moduleCatHomologyπ ≫ S.moduleCatHomologyIso.inv :=
187+
S.moduleCatLeftHomologyData.π ≫ S.moduleCatHomologyIso.inv :=
168188
S.moduleCatLeftHomologyData.π_comp_homologyIso_inv
169189

170190
lemma exact_iff_surjective_moduleCatToCycles :
171191
S.Exact ↔ Function.Surjective S.moduleCatToCycles := by
172-
rw [S.moduleCatLeftHomologyData.exact_iff_epi_f', moduleCatLeftHomologyData_f',
173-
ModuleCat.epi_iff_surjective]
174-
rfl
192+
simp [S.moduleCatLeftHomologyData.exact_iff_epi_f',
193+
ModuleCat.epi_iff_surjective, moduleCatLeftHomologyData_K]
175194

176195
end ShortComplex
177196

Mathlib/RepresentationTheory/GroupCohomology/Functoriality.lean

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,12 @@ theorem H0Map_id_eq_invariantsFunctor_map {A B : Rep k G} (f : A ⟶ B) :
194194
H0Map (MonoidHom.id G) f = (invariantsFunctor k G).map f := by
195195
rfl
196196

197+
@[reassoc (attr := simp), elementwise (attr := simp)]
198+
lemma H0Map_comp_f :
199+
H0Map f φ ≫ (shortComplexH0 B).f = (shortComplexH0 A).f ≫ φ.hom := by
200+
ext
201+
simp [shortComplexH0]
202+
197203
instance mono_H0Map_of_mono {A B : Rep k G} (f : A ⟶ B) [Mono f] :
198204
Mono (H0Map (MonoidHom.id G) f) :=
199205
(ModuleCat.mono_iff_injective _).2 fun _ _ hxy => Subtype.ext <|
@@ -202,10 +208,8 @@ instance mono_H0Map_of_mono {A B : Rep k G} (f : A ⟶ B) [Mono f] :
202208
@[reassoc (attr := simp), elementwise (attr := simp)]
203209
theorem cocyclesMap_comp_isoZeroCocycles_hom :
204210
cocyclesMap f φ 0 ≫ (isoZeroCocycles B).hom = (isoZeroCocycles A).hom ≫ H0Map f φ := by
205-
rw [← Iso.eq_comp_inv, Category.assoc, ← Iso.inv_comp_eq, ← cancel_mono (iCocycles _ _)]
206-
ext x
207-
have := congr($((CommSq.vert_inv ⟨cochainsMap_f_0_comp_zeroCochainsLequiv f φ⟩).w.symm) x)
208-
simp_all
211+
have := cochainsMap_f_0_comp_zeroCochainsLequiv f φ
212+
simp_all [← cancel_mono (shortComplexH0 B).f]
209213

210214
@[reassoc (attr := simp), elementwise (attr := simp)]
211215
theorem map_comp_isoH0_hom :
@@ -259,19 +263,20 @@ noncomputable abbrev mapOneCocycles :
259263
ShortComplex.cyclesMap' (mapShortComplexH1 f φ) (shortComplexH1 A).moduleCatLeftHomologyData
260264
(shortComplexH1 B).moduleCatLeftHomologyData
261265

262-
@[reassoc (attr := simp), elementwise (attr := simp)]
263-
lemma mapOneCocycles_comp_subtype :
264-
mapOneCocycles f φ ≫ ModuleCat.ofHom (oneCocycles B).subtype =
265-
ModuleCat.ofHom (oneCocycles A).subtype ≫ ModuleCat.ofHom (fOne f φ) :=
266-
ShortComplex.cyclesMap'_i (mapShortComplexH1 f φ) (moduleCatLeftHomologyData _)
267-
(moduleCatLeftHomologyData _)
266+
@[reassoc, elementwise]
267+
lemma mapOneCocycles_comp_i :
268+
mapOneCocycles f φ ≫ (shortComplexH1 B).moduleCatLeftHomologyData.i =
269+
(shortComplexH1 A).moduleCatLeftHomologyData.i ≫ ModuleCat.ofHom (fOne f φ) := by
270+
simp
271+
272+
@[deprecated (since := "2025-05-09")]
273+
alias mapOneCocycles_comp_subtype := mapOneCocycles_comp_i
268274

269275
@[reassoc (attr := simp), elementwise (attr := simp)]
270276
lemma cocyclesMap_comp_isoOneCocycles_hom :
271277
cocyclesMap f φ 1 ≫ (isoOneCocycles B).hom = (isoOneCocycles A).hom ≫ mapOneCocycles f φ := by
272-
simp_rw [← cancel_mono (moduleCatLeftHomologyData (shortComplexH1 B)).i, mapOneCocycles,
273-
Category.assoc, cyclesMap'_i, isoOneCocycles, ← Category.assoc]
274-
simp [cochainsMap_f_1_comp_oneCochainsLequiv f, mapShortComplexH1, ← LinearEquiv.toModuleIso_hom]
278+
simp [← cancel_mono (moduleCatLeftHomologyData (shortComplexH1 B)).i, mapShortComplexH1,
279+
cochainsMap_f_1_comp_oneCochainsLequiv f, ← LinearEquiv.toModuleIso_hom]
275280

276281
/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
277282
this is induced map `H¹(H, A) ⟶ H¹(G, B)`. -/
@@ -296,10 +301,10 @@ theorem H1Map_id_comp {A B C : Rep k G} (φ : A ⟶ B) (ψ : B ⟶ C) :
296301
H1Map (MonoidHom.id G) (φ ≫ ψ) = H1Map (MonoidHom.id G) φ ≫ H1Map (MonoidHom.id G) ψ :=
297302
H1Map_comp (MonoidHom.id G) (MonoidHom.id G) _ _
298303

299-
@[reassoc (attr := simp), elementwise (attr := simp)]
304+
@[reassoc, elementwise]
300305
lemma H1π_comp_H1Map :
301-
H1π A ≫ H1Map f φ = mapOneCocycles f φ ≫ H1π B :=
302-
leftHomologyπ_naturality' (mapShortComplexH1 f φ) _ _
306+
H1π A ≫ H1Map f φ = mapOneCocycles f φ ≫ H1π B := by
307+
simp
303308

304309
@[reassoc (attr := simp), elementwise (attr := simp)]
305310
lemma map_comp_isoH1_hom :
@@ -353,19 +358,20 @@ noncomputable abbrev mapTwoCocycles :
353358
ShortComplex.cyclesMap' (mapShortComplexH2 f φ) (shortComplexH2 A).moduleCatLeftHomologyData
354359
(shortComplexH2 B).moduleCatLeftHomologyData
355360

356-
@[reassoc (attr := simp), elementwise (attr := simp)]
357-
lemma mapTwoCocycles_comp_subtype :
358-
mapTwoCocycles f φ ≫ ModuleCat.ofHom (twoCocycles B).subtype =
359-
ModuleCat.ofHom (twoCocycles A).subtype ≫ ModuleCat.ofHom (fTwo f φ) :=
360-
ShortComplex.cyclesMap'_i (mapShortComplexH2 f φ) (moduleCatLeftHomologyData _)
361-
(moduleCatLeftHomologyData _)
361+
@[reassoc, elementwise]
362+
lemma mapTwoCocycles_comp_i :
363+
mapTwoCocycles f φ ≫ (shortComplexH2 B).moduleCatLeftHomologyData.i =
364+
(shortComplexH2 A).moduleCatLeftHomologyData.i ≫ ModuleCat.ofHom (fTwo f φ) := by
365+
simp
366+
367+
@[deprecated (since := "2025-05-09")]
368+
alias mapTwoCocycles_comp_subtype := mapTwoCocycles_comp_i
362369

363370
@[reassoc (attr := simp), elementwise (attr := simp)]
364371
lemma cocyclesMap_comp_isoTwoCocycles_hom :
365372
cocyclesMap f φ 2 ≫ (isoTwoCocycles B).hom = (isoTwoCocycles A).hom ≫ mapTwoCocycles f φ := by
366-
simp_rw [← cancel_mono (moduleCatLeftHomologyData (shortComplexH2 B)).i, mapTwoCocycles,
367-
Category.assoc, cyclesMap'_i, isoTwoCocycles, ← Category.assoc]
368-
simp [cochainsMap_f_2_comp_twoCochainsLequiv f, mapShortComplexH2, ← LinearEquiv.toModuleIso_hom]
373+
simp [← cancel_mono (moduleCatLeftHomologyData (shortComplexH2 B)).i, mapShortComplexH2,
374+
cochainsMap_f_2_comp_twoCochainsLequiv f, ← LinearEquiv.toModuleIso_hom]
369375

370376
/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
371377
this is induced map `H²(H, A) ⟶ H²(G, B)`. -/
@@ -390,10 +396,10 @@ theorem H2Map_id_comp {A B C : Rep k G} (φ : A ⟶ B) (ψ : B ⟶ C) :
390396
H2Map (MonoidHom.id G) (φ ≫ ψ) = H2Map (MonoidHom.id G) φ ≫ H2Map (MonoidHom.id G) ψ :=
391397
H2Map_comp (MonoidHom.id G) (MonoidHom.id G) _ _
392398

393-
@[reassoc (attr := simp), elementwise (attr := simp)]
399+
@[reassoc, elementwise]
394400
lemma H2π_comp_H2Map :
395-
H2π A ≫ H2Map f φ = mapTwoCocycles f φ ≫ H2π B :=
396-
leftHomologyπ_naturality' (mapShortComplexH2 f φ) _ _
401+
H2π A ≫ H2Map f φ = mapTwoCocycles f φ ≫ H2π B := by
402+
simp
397403

398404
@[reassoc (attr := simp), elementwise (attr := simp)]
399405
lemma map_comp_isoH2_hom :

Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -703,10 +703,11 @@ abbrev H0 := ModuleCat.of k A.ρ.invariants
703703
/-- We define the 1st group cohomology of a `k`-linear `G`-representation `A`, `H¹(G, A)`, to be
704704
1-cocycles (i.e. `Z¹(G, A) := Ker(d¹ : Fun(G, A) → Fun(G², A)`) modulo 1-coboundaries
705705
(i.e. `B¹(G, A) := Im(d⁰: A → Fun(G, A))`). -/
706-
abbrev H1 := (shortComplexH1 A).moduleCatHomology
706+
abbrev H1 := (shortComplexH1 A).moduleCatLeftHomologyData.H
707707

708708
/-- The quotient map `Z¹(G, A) → H¹(G, A).` -/
709-
abbrev H1π : ModuleCat.of k (oneCocycles A) ⟶ H1 A := (shortComplexH1 A).moduleCatHomologyπ
709+
abbrev H1π : ModuleCat.of k (oneCocycles A) ⟶ H1 A :=
710+
(shortComplexH1 A).moduleCatLeftHomologyData.π
710711

711712
variable {A} in
712713
lemma H1π_eq_zero_iff (x : oneCocycles A) : H1π A x = 0 ↔ ⇑x ∈ oneCoboundaries A := by
@@ -716,10 +717,11 @@ lemma H1π_eq_zero_iff (x : oneCocycles A) : H1π A x = 0 ↔ ⇑x ∈ oneCoboun
716717
/-- We define the 2nd group cohomology of a `k`-linear `G`-representation `A`, `H²(G, A)`, to be
717718
2-cocycles (i.e. `Z²(G, A) := Ker(d² : Fun(G², A) → Fun(G³, A)`) modulo 2-coboundaries
718719
(i.e. `B²(G, A) := Im(d¹: Fun(G, A) → Fun(G², A))`). -/
719-
abbrev H2 := (shortComplexH2 A).moduleCatHomology
720+
abbrev H2 := (shortComplexH2 A).moduleCatLeftHomologyData.H
720721

721722
/-- The quotient map `Z²(G, A) → H²(G, A).` -/
722-
abbrev H2π : ModuleCat.of k (twoCocycles A) ⟶ H2 A := (shortComplexH2 A).moduleCatHomologyπ
723+
abbrev H2π : ModuleCat.of k (twoCocycles A) ⟶ H2 A :=
724+
(shortComplexH2 A).moduleCatLeftHomologyData.π
723725

724726
variable {A} in
725727
lemma H2π_eq_zero_iff (x : twoCocycles A) : H2π A x = 0 ↔ ⇑x ∈ twoCoboundaries A := by
@@ -802,17 +804,20 @@ def isoZeroCocycles : cocycles A 0 ≅ H0 A :=
802804
(dZeroArrowIso A)
803805

804806
@[reassoc (attr := simp), elementwise (attr := simp)]
805-
lemma isoZeroCocycles_hom_comp_subtype :
806-
(isoZeroCocycles A).hom ≫ ModuleCat.ofHom A.ρ.invariants.subtype =
807+
lemma isoZeroCocycles_hom_comp_f :
808+
(isoZeroCocycles A).hom ≫ (shortComplexH0 A).f =
807809
iCocycles A 0 ≫ (zeroCochainsLequiv A).toModuleIso.hom := by
808810
dsimp [isoZeroCocycles]
809811
apply KernelFork.mapOfIsLimit_ι
810812

813+
@[deprecated (since := "2025-05-09")]
814+
alias isoZeroCocycles_hom_comp_subtype := isoZeroCocycles_hom_comp_f
815+
811816
@[reassoc (attr := simp), elementwise (attr := simp)]
812817
lemma isoZeroCocycles_inv_comp_iCocycles :
813818
(isoZeroCocycles A).inv ≫ iCocycles A 0 =
814-
ModuleCat.ofHom A.ρ.invariants.subtype ≫ (zeroCochainsLequiv A).toModuleIso.inv := by
815-
rw [Iso.inv_comp_eq, ← Category.assoc, Iso.eq_comp_inv, isoZeroCocycles_hom_comp_subtype]
819+
(shortComplexH0 A).f ≫ (zeroCochainsLequiv A).toModuleIso.inv := by
820+
rw [Iso.inv_comp_eq, ← Category.assoc, Iso.eq_comp_inv, isoZeroCocycles_hom_comp_f]
816821

817822
/-- The 0th group cohomology of `A`, defined as the 0th cohomology of the complex of inhomogeneous
818823
cochains, is isomorphic to the invariants of the representation on `A`. -/
@@ -844,17 +849,19 @@ def isoOneCocycles : cocycles A 1 ≅ ModuleCat.of k (oneCocycles A) :=
844849
cyclesMapIso (shortComplexH1Iso A) ≪≫ (shortComplexH1 A).moduleCatCyclesIso
845850

846851
@[reassoc (attr := simp), elementwise (attr := simp)]
847-
lemma isoOneCocycles_hom_comp_subtype :
848-
(isoOneCocycles A).hom ≫ ModuleCat.ofHom (oneCocycles A).subtype =
852+
lemma isoOneCocycles_hom_comp_i :
853+
(isoOneCocycles A).hom ≫ (shortComplexH1 A).moduleCatLeftHomologyData.i =
849854
iCocycles A 1 ≫ (oneCochainsLequiv A).toModuleIso.hom := by
850-
have := (shortComplexH1 A).moduleCatCyclesIso_hom_subtype
851-
simp_all [shortComplexH1, isoOneCocycles, oneCocycles]
855+
simp [shortComplexH1, isoOneCocycles, oneCocycles]
856+
857+
@[deprecated (since := "2025-05-09")]
858+
alias isoOneCocycles_hom_comp_subtype := isoOneCocycles_hom_comp_i
852859

853860
@[reassoc (attr := simp), elementwise (attr := simp)]
854861
lemma toCocycles_comp_isoOneCocycles_hom :
855862
toCocycles A 0 1 ≫ (isoOneCocycles A).hom =
856863
(zeroCochainsLequiv A).toModuleIso.hom ≫
857-
ModuleCat.ofHom (shortComplexH1 A).moduleCatToCycles := by
864+
(shortComplexH1 A).moduleCatLeftHomologyData.f' := by
858865
simp [isoOneCocycles]
859866

860867
/-- The 1st group cohomology of `A`, defined as the 1st cohomology of the complex of inhomogeneous
@@ -889,17 +896,18 @@ def isoTwoCocycles : cocycles A 2 ≅ ModuleCat.of k (twoCocycles A) :=
889896
cyclesMapIso (shortComplexH2Iso A) ≪≫ (shortComplexH2 A).moduleCatCyclesIso
890897

891898
@[reassoc (attr := simp), elementwise (attr := simp)]
892-
lemma isoTwoCocycles_hom_comp_subtype :
893-
(isoTwoCocycles A).hom ≫ ModuleCat.ofHom (twoCocycles A).subtype =
899+
lemma isoTwoCocycles_hom_comp_i :
900+
(isoTwoCocycles A).hom ≫ (shortComplexH2 A).moduleCatLeftHomologyData.i =
894901
iCocycles A 2 ≫ (twoCochainsLequiv A).toModuleIso.hom := by
895-
have := (shortComplexH2 A).moduleCatCyclesIso_hom_subtype
896-
simp_all [shortComplexH2, isoTwoCocycles, twoCocycles]
902+
simp [shortComplexH2, isoTwoCocycles, twoCocycles]
903+
904+
@[deprecated (since := "2025-05-09")]
905+
alias isoTwoCocycles_hom_comp_subtype := isoTwoCocycles_hom_comp_i
897906

898907
@[reassoc (attr := simp), elementwise (attr := simp)]
899908
lemma toCocycles_comp_isoTwoCocycles_hom :
900909
toCocycles A 1 2 ≫ (isoTwoCocycles A).hom =
901-
(oneCochainsLequiv A).toModuleIso.hom ≫
902-
ModuleCat.ofHom (shortComplexH2 A).moduleCatToCycles := by
910+
(oneCochainsLequiv A).toModuleIso.hom ≫ (shortComplexH2 A).moduleCatLeftHomologyData.f' := by
903911
simp [isoTwoCocycles]
904912

905913
/-- The 2nd group cohomology of `A`, defined as the 2nd cohomology of the complex of inhomogeneous

0 commit comments

Comments
 (0)