Skip to content

Commit 304e3a7

Browse files
author
Amelia Livingston
committed
refactor(RepresentationTheory/GroupCohomology/*): replace nCochainsLequiv with isomorphisms in ModuleCat for n = 0, 1, 2 (#24693)
These are more useful as `ModuleCat` isos in practice.
1 parent bd7870a commit 304e3a7

File tree

3 files changed

+208
-153
lines changed

3 files changed

+208
-153
lines changed

Mathlib/RepresentationTheory/GroupCohomology/Basic.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,6 @@ noncomputable abbrev inhomogeneousCochains : CochainComplex (ModuleCat k) ℕ :=
197197
map_zero, Pi.zero_apply, LinearMap.zero_apply]
198198
rfl
199199

200-
@[simp]
201200
theorem inhomogeneousCochains.d_def (n : ℕ) :
202201
(inhomogeneousCochains A).d n (n + 1) = ModuleCat.ofHom (inhomogeneousCochains.d n A) :=
203202
CochainComplex.of_d _ _ _ _

Mathlib/RepresentationTheory/GroupCohomology/Functoriality.lean

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -120,53 +120,66 @@ theorem map_id_comp {A B C : Rep k G} (φ : A ⟶ B) (ψ : B ⟶ C) (n : ℕ) :
120120

121121
/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
122122
this is the induced map sending `x : H → A` to `(g : G) ↦ φ (x (f g))`. -/
123-
noncomputable abbrev fOne : (H → A) →ₗ[k] (G → B) := φ.hom.hom.compLeft G ∘ₗ LinearMap.funLeft k A f
123+
noncomputable abbrev fOne :
124+
ModuleCat.of k (H → A) ⟶ ModuleCat.of k (G → B) :=
125+
ModuleCat.ofHom <| φ.hom.hom.compLeft G ∘ₗ LinearMap.funLeft k A f
124126

125127
/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
126128
this is the induced map sending `x : H × H → A` to `(g₁, g₂ : G × G) ↦ φ (x (f g₁, f g₂))`. -/
127-
noncomputable abbrev fTwo : (H × H → A) →ₗ[k] (G × G → B) :=
128-
φ.hom.hom.compLeft (G × G) ∘ₗ LinearMap.funLeft k A (Prod.map f f)
129+
noncomputable abbrev fTwo :
130+
ModuleCat.of k (H × H → A) ⟶ ModuleCat.of k (G × G → B) :=
131+
ModuleCat.ofHom <| φ.hom.hom.compLeft (G × G) ∘ₗ LinearMap.funLeft k A (Prod.map f f)
129132

130133
/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
131134
this is the induced map sending `x : H × H × H → A` to
132135
`(g₁, g₂, g₃ : G × G × G) ↦ φ (x (f g₁, f g₂, f g₃))`. -/
133-
noncomputable abbrev fThree : (H × H × H → A) →ₗ[k] (G × G × G → B) :=
134-
φ.hom.hom.compLeft (G × G × G) ∘ₗ LinearMap.funLeft k A (Prod.map f (Prod.map f f))
136+
noncomputable abbrev fThree :
137+
ModuleCat.of k (H × H × H → A) ⟶ ModuleCat.of k (G × G × G → B) :=
138+
ModuleCat.ofHom <|
139+
φ.hom.hom.compLeft (G × G × G) ∘ₗ LinearMap.funLeft k A (Prod.map f (Prod.map f f))
135140

136141
@[reassoc]
137-
lemma cochainsMap_f_0_comp_zeroCochainsLequiv :
138-
(cochainsMap f φ).f 0 ≫ (zeroCochainsLequiv B).toModuleIso.hom =
139-
(zeroCochainsLequiv A).toModuleIso.hom ≫ φ.hom := by
142+
lemma cochainsMap_f_0_comp_zeroCochainsIso :
143+
(cochainsMap f φ).f 0 ≫ (zeroCochainsIso B).hom = (zeroCochainsIso A).hom ≫ φ.hom := by
140144
ext x
141145
simp only [cochainsMap_f, Unique.eq_default (f ∘ _)]
142146
rfl
143147

148+
@[deprecated (since := "2025-05-09")]
149+
alias cochainsMap_f_0_comp_zeroCochainsLequiv := cochainsMap_f_0_comp_zeroCochainsIso
150+
144151
@[reassoc]
145-
lemma cochainsMap_f_1_comp_oneCochainsLequiv :
146-
(cochainsMap f φ).f 1 ≫ (oneCochainsLequiv B).toModuleIso.hom =
147-
(oneCochainsLequiv A).toModuleIso.hom ≫ ModuleCat.ofHom (fOne f φ) := by
152+
lemma cochainsMap_f_1_comp_oneCochainsIso :
153+
(cochainsMap f φ).f 1 ≫ (oneCochainsIso B).hom = (oneCochainsIso A).hom ≫ fOne f φ := by
148154
ext x
149155
simp only [cochainsMap_f, Unique.eq_default (f ∘ _)]
150156
rfl
151157

158+
@[deprecated (since := "2025-05-09")]
159+
alias cochainsMap_f_1_comp_oneCochainsLequiv := cochainsMap_f_1_comp_oneCochainsIso
160+
152161
@[reassoc]
153-
lemma cochainsMap_f_2_comp_twoCochainsLequiv :
154-
(cochainsMap f φ).f 2 ≫ (twoCochainsLequiv B).toModuleIso.hom =
155-
(twoCochainsLequiv A).toModuleIso.hom ≫ ModuleCat.ofHom (fTwo f φ) := by
162+
lemma cochainsMap_f_2_comp_twoCochainsIso :
163+
(cochainsMap f φ).f 2 ≫ (twoCochainsIso B).hom = (twoCochainsIso A).hom ≫ fTwo f φ := by
156164
ext x g
157165
show φ.hom (x _) = φ.hom (x _)
158166
rcongr x
159167
fin_cases x <;> rfl
160168

169+
@[deprecated (since := "2025-05-09")]
170+
alias cochainsMap_f_2_comp_twoCochainsLequiv := cochainsMap_f_2_comp_twoCochainsIso
171+
161172
@[reassoc]
162-
lemma cochainsMap_f_3_comp_threeCochainsLequiv :
163-
(cochainsMap f φ).f 3 ≫ (threeCochainsLequiv B).toModuleIso.hom =
164-
(threeCochainsLequiv A).toModuleIso.hom ≫ ModuleCat.ofHom (fThree f φ) := by
173+
lemma cochainsMap_f_3_comp_threeCochainsIso :
174+
(cochainsMap f φ).f 3 ≫ (threeCochainsIso B).hom = (threeCochainsIso A).hom ≫ fThree f φ := by
165175
ext x g
166176
show φ.hom (x _) = φ.hom (x _)
167177
rcongr x
168178
fin_cases x <;> rfl
169179

180+
@[deprecated (since := "2025-05-09")]
181+
alias cochainsMap_f_3_comp_threeCochainsLequiv := cochainsMap_f_3_comp_threeCochainsIso
182+
170183
open ShortComplex
171184

172185
/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
@@ -208,7 +221,7 @@ instance mono_H0Map_of_mono {A B : Rep k G} (f : A ⟶ B) [Mono f] :
208221
@[reassoc (attr := simp), elementwise (attr := simp)]
209222
theorem cocyclesMap_comp_isoZeroCocycles_hom :
210223
cocyclesMap f φ 0 ≫ (isoZeroCocycles B).hom = (isoZeroCocycles A).hom ≫ H0Map f φ := by
211-
have := cochainsMap_f_0_comp_zeroCochainsLequiv f φ
224+
have := cochainsMap_f_0_comp_zeroCochainsIso f φ
212225
simp_all [← cancel_mono (shortComplexH0 B).f]
213226

214227
@[reassoc (attr := simp), elementwise (attr := simp)]
@@ -223,8 +236,8 @@ to `B --dZero--> Fun(G, B) --dOne--> Fun(G × G, B)`. -/
223236
noncomputable def mapShortComplexH1 :
224237
shortComplexH1 A ⟶ shortComplexH1 B where
225238
τ₁ := φ.hom
226-
τ₂ := ModuleCat.ofHom (fOne f φ)
227-
τ₃ := ModuleCat.ofHom (fTwo f φ)
239+
τ₂ := fOne f φ
240+
τ₃ := fTwo f φ
228241
comm₁₂ := by
229242
ext x
230243
funext g
@@ -266,7 +279,7 @@ noncomputable abbrev mapOneCocycles :
266279
@[reassoc, elementwise]
267280
lemma mapOneCocycles_comp_i :
268281
mapOneCocycles f φ ≫ (shortComplexH1 B).moduleCatLeftHomologyData.i =
269-
(shortComplexH1 A).moduleCatLeftHomologyData.i ≫ ModuleCat.ofHom (fOne f φ) := by
282+
(shortComplexH1 A).moduleCatLeftHomologyData.i ≫ fOne f φ := by
270283
simp
271284

272285
@[deprecated (since := "2025-05-09")]
@@ -276,7 +289,7 @@ alias mapOneCocycles_comp_subtype := mapOneCocycles_comp_i
276289
lemma cocyclesMap_comp_isoOneCocycles_hom :
277290
cocyclesMap f φ 1 ≫ (isoOneCocycles B).hom = (isoOneCocycles A).hom ≫ mapOneCocycles f φ := by
278291
simp [← cancel_mono (moduleCatLeftHomologyData (shortComplexH1 B)).i, mapShortComplexH1,
279-
cochainsMap_f_1_comp_oneCochainsLequiv f, ← LinearEquiv.toModuleIso_hom]
292+
cochainsMap_f_1_comp_oneCochainsIso f]
280293

281294
/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
282295
this is induced map `H¹(H, A) ⟶ H¹(G, B)`. -/
@@ -318,9 +331,9 @@ this is the induced map from the short complex
318331
@[simps]
319332
noncomputable def mapShortComplexH2 :
320333
shortComplexH2 A ⟶ shortComplexH2 B where
321-
τ₁ := ModuleCat.ofHom (fOne f φ)
322-
τ₂ := ModuleCat.ofHom (fTwo f φ)
323-
τ₃ := ModuleCat.ofHom (fThree f φ)
334+
τ₁ := fOne f φ
335+
τ₂ := fTwo f φ
336+
τ₃ := fThree f φ
324337
comm₁₂ := by
325338
ext x
326339
funext g
@@ -361,7 +374,7 @@ noncomputable abbrev mapTwoCocycles :
361374
@[reassoc, elementwise]
362375
lemma mapTwoCocycles_comp_i :
363376
mapTwoCocycles f φ ≫ (shortComplexH2 B).moduleCatLeftHomologyData.i =
364-
(shortComplexH2 A).moduleCatLeftHomologyData.i ≫ ModuleCat.ofHom (fTwo f φ) := by
377+
(shortComplexH2 A).moduleCatLeftHomologyData.i ≫ fTwo f φ := by
365378
simp
366379

367380
@[deprecated (since := "2025-05-09")]
@@ -371,7 +384,7 @@ alias mapTwoCocycles_comp_subtype := mapTwoCocycles_comp_i
371384
lemma cocyclesMap_comp_isoTwoCocycles_hom :
372385
cocyclesMap f φ 2 ≫ (isoTwoCocycles B).hom = (isoTwoCocycles A).hom ≫ mapTwoCocycles f φ := by
373386
simp [← cancel_mono (moduleCatLeftHomologyData (shortComplexH2 B)).i, mapShortComplexH2,
374-
cochainsMap_f_2_comp_twoCochainsLequiv f, ← LinearEquiv.toModuleIso_hom]
387+
cochainsMap_f_2_comp_twoCochainsIso f]
375388

376389
/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
377390
this is induced map `H²(H, A) ⟶ H²(G, B)`. -/

0 commit comments

Comments
 (0)