@@ -231,51 +231,55 @@ section H0
231231
232232/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
233233this is induced map `Aᴴ ⟶ Bᴳ`. -/
234- noncomputable abbrev H0Map : H0 A ⟶ H0 B :=
235- ModuleCat.ofHom <| LinearMap.codRestrict _ (φ.hom.hom ∘ₗ A.ρ.invariants.subtype)
236- fun ⟨c, hc⟩ g => by simpa [hc (f g)] using (hom_comm_apply φ g c).symm
234+ @[deprecated (since := "2025-06-09")]
235+ alias H0Map := map
237236
238- @[simp]
239- theorem H0Map_id : H0Map (MonoidHom.id _) (𝟙 A) = 𝟙 _ := by
240- rfl
237+ @[deprecated (since := "2025-06-09")]
238+ alias H0Map_id := map_id
241239
242- @[reassoc]
243- theorem H0Map_comp {G H K : Type u} [Group G] [Group H] [Group K]
244- {A : Rep k K} {B : Rep k H} {C : Rep k G} (f : H →* K) (g : G →* H)
245- (φ : (Action.res _ f).obj A ⟶ B) (ψ : (Action.res _ g).obj B ⟶ C) :
246- H0Map (f.comp g) ((Action.res _ g).map φ ≫ ψ) = H0Map f φ ≫ H0Map g ψ :=
247- rfl
240+ @[deprecated (since := "2025-06-09")]
241+ alias H0Map_comp := map_comp
248242
249- @[reassoc]
250- theorem H0Map_id_comp {A B C : Rep k G} (φ : A ⟶ B) (ψ : B ⟶ C) :
251- H0Map (MonoidHom.id G) (φ ≫ ψ) = H0Map (MonoidHom.id G) φ ≫ H0Map (MonoidHom.id G) ψ := rfl
243+ @[deprecated (since := "2025-06-09")]
244+ alias H0Map_id_comp := map_id_comp
252245
253- theorem H0Map_id_eq_invariantsFunctor_map {A B : Rep k G} (f : A ⟶ B) :
254- H0Map (MonoidHom.id G) f = (invariantsFunctor k G).map f := by
255- rfl
246+ variable [DecidableEq G] [DecidableEq H]
256247
257248@[reassoc (attr := simp), elementwise (attr := simp)]
258- lemma H0Map_comp_f :
259- H0Map f φ ≫ (shortComplexH0 B).f = (shortComplexH0 A ).f ≫ φ.hom := by
260- ext
261- simp [shortComplexH0 ]
249+ theorem map_H0Iso_hom_f :
250+ map f φ 0 ≫ (H0Iso B).hom ≫ (shortComplexH0 B ).f =
251+ (H0Iso A).hom ≫ (shortComplexH0 A).f ≫ φ.hom := by
252+ simp [← cancel_epi (π _ _) ]
262253
263- instance mono_H0Map_of_mono {A B : Rep k G} (f : A ⟶ B) [Mono f] :
264- Mono (H0Map (MonoidHom.id G) f) :=
265- (ModuleCat.mono_iff_injective _).2 fun _ _ hxy => Subtype.ext <|
266- (mono_iff_injective f).1 ‹_› (Subtype.ext_iff.1 hxy)
254+ @[deprecated (since := "2025-06-09")]
255+ alias H0Map_comp_f := map_H0Iso_hom_f
267256
268- variable [DecidableEq G] [DecidableEq H] in
269257@[reassoc (attr := simp), elementwise (attr := simp)]
270- theorem cocyclesMap_comp_isoZeroCocycles_hom :
271- cocyclesMap f φ 0 ≫ (isoZeroCocycles B).hom = (isoZeroCocycles A).hom ≫ H0Map f φ := by
272- simp [← cancel_mono (shortComplexH0 B).f]
258+ theorem map_id_comp_H0Iso_hom {A B : Rep k G} (f : A ⟶ B) :
259+ map (MonoidHom.id G) f 0 ≫ (H0Iso B).hom = (H0Iso A).hom ≫ (invariantsFunctor k G).map f := by
260+ simp only [← cancel_mono (shortComplexH0 B).f, Category.assoc, map_H0Iso_hom_f]
261+ rfl
273262
274- variable [DecidableEq G] [DecidableEq H] in
275- @[reassoc (attr := simp), elementwise (attr := simp)]
276- theorem map_comp_isoH0_hom :
277- map f φ 0 ≫ (isoH0 B).hom = (isoH0 A).hom ≫ H0Map f φ := by
278- simp [← cancel_epi (π _ _)]
263+ @[deprecated (since := "2025-06-09")]
264+ alias H0Map_id_eq_invariantsFunctor_map := map_id_comp_H0Iso_hom
265+
266+ instance mono_map_0_of_mono {A B : Rep k G} (f : A ⟶ B) [Mono f] :
267+ Mono (map (MonoidHom.id G) f 0 ) where
268+ right_cancellation g h hgh := by
269+ simp only [← cancel_mono (H0Iso B).hom, Category.assoc, map_id_comp_H0Iso_hom] at hgh
270+ simp_all [cancel_mono]
271+
272+ @[deprecated (since := "2025-06-09")]
273+ alias mono_H0Map_of_mono := mono_map_0_of_mono
274+
275+ @[reassoc, elementwise]
276+ theorem cocyclesMap_zeroIsoCocycles_hom_f :
277+ cocyclesMap f φ 0 ≫ (zeroCocyclesIso B).hom ≫ (shortComplexH0 B).f =
278+ (zeroCocyclesIso A).hom ≫ (shortComplexH0 A).f ≫ φ.hom := by
279+ simp
280+
281+ @[deprecated (since := "2025-06-12")]
282+ alias cocyclesMap_comp_isoZeroCocycles_hom := cocyclesMap_zeroIsoCocycles_hom_f
279283
280284end H0
281285section H1
@@ -356,74 +360,63 @@ theorem mapOneCocycles_one (φ : (Action.res _ 1).obj A ⟶ B) :
356360
357361/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
358362this is induced map `H¹(H, A) ⟶ H¹(G, B)`. -/
359- noncomputable abbrev H1Map : H1 A ⟶ H1 B :=
360- ShortComplex.leftHomologyMap' (mapShortComplexH1 f φ)
361- (shortComplexH1 A).moduleCatLeftHomologyData (shortComplexH1 B).moduleCatLeftHomologyData
363+ @[deprecated (since := "2025-06-09")]
364+ alias H1Map := map
362365
363- @[simp]
364- theorem H1Map_id : H1Map (MonoidHom.id _) (𝟙 A) = 𝟙 _ := by
365- simp only [H1Map, shortComplexH1, mapShortComplexH1_id, leftHomologyMap'_id]
366- rfl
366+ @[deprecated (since := "2025-6-09")]
367+ alias H1Map_id := map_id
367368
368- @[reassoc]
369- theorem H1Map_comp {G H K : Type u} [Group G] [Group H] [Group K]
370- {A : Rep k K} {B : Rep k H} {C : Rep k G} (f : H →* K) (g : G →* H)
371- (φ : (Action.res _ f).obj A ⟶ B) (ψ : (Action.res _ g).obj B ⟶ C) :
372- H1Map (f.comp g) ((Action.res _ g).map φ ≫ ψ) = H1Map f φ ≫ H1Map g ψ := by
373- simpa [H1Map, shortComplexH1, mapShortComplexH1_comp] using leftHomologyMap'_comp ..
369+ @[deprecated (since := "2025-06-09")]
370+ alias H1Map_comp := map_comp
374371
375- @[reassoc]
376- theorem H1Map_id_comp {A B C : Rep k G} (φ : A ⟶ B) (ψ : B ⟶ C) :
377- H1Map (MonoidHom.id G) (φ ≫ ψ) = H1Map (MonoidHom.id G) φ ≫ H1Map (MonoidHom.id G) ψ :=
378- H1Map_comp (MonoidHom.id G) (MonoidHom.id G) _ _
372+ @[deprecated (since := "2025-06-09")]
373+ alias H1Map_id_comp := map_id_comp
379374
380- @[reassoc, elementwise]
381- lemma H1π_comp_H1Map :
382- H1π A ≫ H1Map f φ = mapOneCocycles f φ ≫ H1π B := by
383- simp
375+ variable [DecidableEq G] [DecidableEq H]
384376
385- variable [DecidableEq G] [DecidableEq H] in
386377@[reassoc (attr := simp), elementwise (attr := simp)]
387- lemma map_comp_isoH1_hom :
388- map f φ 1 ≫ (isoH1 B).hom = (isoH1 A).hom ≫ H1Map f φ := by
389- simp [← cancel_epi (π _ _), H1Map, Category.assoc]
378+ lemma H1π_comp_map :
379+ H1π A ≫ map f φ 1 = mapOneCocycles f φ ≫ H1π B := by
380+ simp [H1π, Iso.inv_comp_eq, ← cocyclesMap_comp_isoOneCocycles_hom_assoc]
381+
382+ @[deprecated (since := "2025-06-12")]
383+ alias H1π_comp_H1Map := H1π_comp_map
390384
391385@[simp]
392- theorem H1Map_one (φ : (Action.res _ 1 ).obj A ⟶ B) :
393- H1Map 1 φ = 0 := by
386+ theorem map_1_one (φ : (Action.res _ 1 ).obj A ⟶ B) :
387+ map 1 φ 1 = 0 := by
394388 simp [← cancel_epi (H1π _)]
395389
390+ @[deprecated (since := "2025-06-09")]
391+ alias H1Map_one := map_1_one
392+
396393section InfRes
397394
398- variable (A : Rep k G) (S : Subgroup G) [S.Normal]
395+ variable (A : Rep k G) (S : Subgroup G) [S.Normal] [DecidableEq (G ⧸ S)]
399396
400397/-- The short complex `H¹(G ⧸ S, A^S) ⟶ H¹(G, A) ⟶ H¹(S, A)`. -/
401398@[simps X₁ X₂ X₃ f g]
402399noncomputable def H1InfRes :
403400 ShortComplex (ModuleCat k) where
404- X₁ := H1 (A.quotientToInvariants S)
405- X₂ := H1 A
406- X₃ := H1 ((Action.res _ S.subtype).obj A)
407- f := H1Map (QuotientGroup.mk' S) (subtype ..)
408- g := H1Map S.subtype (𝟙 _)
409- zero := by
410- rw [← H1Map_comp, Category.comp_id,
411- congr (QuotientGroup.mk'_comp_subtype S) H1Map, H1Map_one]
412- rintro g x hx ⟨s, hs⟩
413- simpa using congr(A.ρ g $(hx ⟨(g⁻¹ * s * g), Subgroup.Normal.conj_mem' ‹_› s hs g⟩))
401+ X₁ := groupCohomology (A.quotientToInvariants S) 1
402+ X₂ := groupCohomology A 1
403+ X₃ := groupCohomology ((Action.res _ S.subtype).obj A) 1
404+ f := map (QuotientGroup.mk' S) (subtype _ _ <| le_comap_invariants A.ρ S) 1
405+ g := map S.subtype (𝟙 _) 1
406+ zero := by rw [← map_comp, Category.comp_id, congr (QuotientGroup.mk'_comp_subtype S)
407+ (fun f φ => map f φ 1 ), map_1_one]
414408
415409/-- The inflation map `H¹(G ⧸ S, A^S) ⟶ H¹(G, A)` is a monomorphism. -/
416410instance : Mono (H1InfRes A S).f := by
417411 rw [ModuleCat.mono_iff_injective, injective_iff_map_eq_zero]
418412 intro x hx
419413 induction x using H1_induction_on with | @h x =>
420- simp_all only [H1InfRes_X₂, H1InfRes_X₁, H1InfRes_f, H1π_comp_H1Map_apply (QuotientGroup.mk' S),
421- Submodule.Quotient.mk_eq_zero, moduleCatLeftHomologyData_H]
422- rcases hx with ⟨y, hy⟩
423- refine ⟨⟨y, fun s => ?_⟩, Subtype.ext <| funext fun g => Quotient.inductionOn' g
424- fun g => Subtype.ext <| congr_fun (Subtype.ext_iff.1 hy) g⟩
425- simpa [coe_mapOneCocycles (x := x), sub_eq_zero, LinearMap.codRestrict, shortComplexH1,
426- (QuotientGroup.eq_one_iff s.1 ).2 s.2 ] using congr_fun (Subtype.ext_iff.1 hy) s.1
414+ simp_all only [H1InfRes_X₂, H1InfRes_X₁, H1InfRes_f, H1π_comp_map_apply (QuotientGroup.mk' S)]
415+ rcases (H1π_eq_zero_iff _).1 hx with ⟨y, hy⟩
416+ refine (H1π_eq_zero_iff _).2 ⟨⟨y, fun s => ?_⟩, funext fun g => QuotientGroup.induction_on g
417+ fun g => Subtype.ext <| by simpa [-SetLike.coe_eq_coe] using congr_fun hy g⟩
418+ simpa [coe_mapOneCocycles (x := x), sub_eq_zero, (QuotientGroup.eq_one_iff s.1 ).2 s.2 ] using
419+ congr_fun hy s.1
427420
428421/-- Given a `G`-representation `A` and a normal subgroup `S ≤ G`, the short complex
429422`H¹(G ⧸ S, A^S) ⟶ H¹(G, A) ⟶ H¹(S, A)` is exact. -/
@@ -432,12 +425,11 @@ lemma H1InfRes_exact : (H1InfRes A S).Exact := by
432425 intro x hx
433426 induction x using H1_induction_on with | @h x =>
434427 simp_all only [H1InfRes_X₂, H1InfRes_X₃, H1InfRes_g, H1InfRes_X₁, LinearMap.mem_ker,
435- H1π_comp_H1Map_apply S.subtype, Submodule.Quotient.mk_eq_zero, H1InfRes_f,
436- moduleCatLeftHomologyData_H]
437- rcases hx with ⟨(y : A), hy⟩
428+ H1π_comp_map_apply S.subtype, H1InfRes_f]
429+ rcases (H1π_eq_zero_iff _).1 hx with ⟨(y : A), hy⟩
438430 have h1 := (mem_oneCocycles_iff x).1 x.2
439431 have h2 : ∀ s ∈ S, x s = A.ρ s y - y :=
440- fun s hs => (groupCohomology.oneCocycles_ext_iff. 1 hy ⟨s, hs⟩).symm
432+ fun s hs => funext_iff. 1 hy.symm ⟨s, hs⟩
441433 refine ⟨H1π _ ⟨fun g => Quotient.liftOn' g (fun g => ⟨x.1 g - A.ρ g y + y, ?_⟩) ?_, ?_⟩, ?_⟩
442434 · intro s
443435 calc
@@ -460,12 +452,10 @@ lemma H1InfRes_exact : (H1InfRes A S).Exact := by
460452 apply Subtype.ext
461453 simp [← QuotientGroup.mk_mul, h1 g h, sub_add_eq_add_sub, add_assoc]
462454 · symm
463- simp only [moduleCatLeftHomologyData_H, moduleCatLeftHomologyData_π_hom,
464- Submodule.mkQ_apply, H1π_comp_H1Map_apply, Submodule.Quotient.eq]
455+ simp only [H1π_comp_map_apply, H1π_eq_iff (A := A)]
465456 use y
466- refine Subtype.ext <| funext fun g => ?_
467- simp only [LinearMap.codRestrict_apply, AddSubgroupClass.coe_sub]
468- simp [shortComplexH1, coe_mapOneCocycles (QuotientGroup.mk' S),
457+ ext g
458+ simp [coe_mapOneCocycles (QuotientGroup.mk' S),
469459 oneCocycles.coe_mk (A := A.quotientToInvariants S), ← sub_sub]
470460
471461end InfRes
@@ -541,37 +531,26 @@ lemma cocyclesMap_comp_isoTwoCocycles_hom :
541531
542532/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
543533this is induced map `H²(H, A) ⟶ H²(G, B)`. -/
544- noncomputable abbrev H2Map : H2 A ⟶ H2 B :=
545- ShortComplex.leftHomologyMap' (mapShortComplexH2 f φ)
546- (shortComplexH2 A).moduleCatLeftHomologyData (shortComplexH2 B).moduleCatLeftHomologyData
534+ @[deprecated (since := "2025-06-09")]
535+ alias H2Map := map
547536
548- @[simp]
549- theorem H2Map_id : H2Map (MonoidHom.id _) (𝟙 A) = 𝟙 _ := by
550- simp only [H2Map, shortComplexH2, mapShortComplexH2_id, leftHomologyMap'_id]
551- rfl
537+ @[deprecated (since := "2025-06-09")]
538+ alias H2Map_id := map_id
552539
553- @[reassoc]
554- theorem H2Map_comp {G H K : Type u} [Group G] [Group H] [Group K]
555- {A : Rep k K} {B : Rep k H} {C : Rep k G} (f : H →* K) (g : G →* H)
556- (φ : (Action.res _ f).obj A ⟶ B) (ψ : (Action.res _ g).obj B ⟶ C) :
557- H2Map (f.comp g) ((Action.res _ g).map φ ≫ ψ) = H2Map f φ ≫ H2Map g ψ := by
558- simpa [H2Map, shortComplexH2, mapShortComplexH2_comp] using leftHomologyMap'_comp ..
540+ @[deprecated (since := "2025-06-09")]
541+ alias H2Map_comp := map_comp
559542
560- @[reassoc]
561- theorem H2Map_id_comp {A B C : Rep k G} (φ : A ⟶ B) (ψ : B ⟶ C) :
562- H2Map (MonoidHom.id G) (φ ≫ ψ) = H2Map (MonoidHom.id G) φ ≫ H2Map (MonoidHom.id G) ψ :=
563- H2Map_comp (MonoidHom.id G) (MonoidHom.id G) _ _
564-
565- @[reassoc, elementwise]
566- lemma H2π_comp_H2Map :
567- H2π A ≫ H2Map f φ = mapTwoCocycles f φ ≫ H2π B := by
568- simp
543+ @[deprecated (since := "2025-06-09")]
544+ alias H2Map_id_comp := map_id_comp
569545
570546variable [DecidableEq G] [DecidableEq H] in
571547@[reassoc (attr := simp), elementwise (attr := simp)]
572- lemma map_comp_isoH2_hom :
573- map f φ 2 ≫ (isoH2 B).hom = (isoH2 A).hom ≫ H2Map f φ := by
574- simp [← cancel_epi (π _ _), H2Map, Category.assoc]
548+ lemma H2π_comp_map :
549+ H2π A ≫ map f φ 2 = mapTwoCocycles f φ ≫ H2π B := by
550+ simp [H2π, Iso.inv_comp_eq, ← cocyclesMap_comp_isoTwoCocycles_hom_assoc]
551+
552+ @[deprecated (since := "2025-06-12")]
553+ alias H2π_comp_H2Map := H2π_comp_map
575554
576555end H2
577556
0 commit comments