Skip to content

Commit 7e33fba

Browse files
author
mathlib4-bot
committed
Merge remote-tracking branch 'origin/master' into bump/v4.22.0
2 parents 1c6463a + c1c0159 commit 7e33fba

File tree

9 files changed

+407
-312
lines changed

9 files changed

+407
-312
lines changed

Mathlib/Algebra/Order/Archimedean/Class.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ theorem le_def {a b : MulArchimedeanOrder M} : a ≤ b ↔ ∃ n, |b.val|ₘ ≤
9797
@[to_additive]
9898
theorem lt_def {a b : MulArchimedeanOrder M} : a < b ↔ ∀ n, |b.val|ₘ ^ n < |a.val|ₘ := .rfl
9999

100-
variable {M: Type*}
100+
variable {M : Type*}
101101
variable [CommGroup M] [LinearOrder M] [IsOrderedMonoid M] {a b : M}
102102

103103
@[to_additive]
@@ -299,7 +299,7 @@ theorem mk_mul_eq_mk_right (h : mk b < mk a) : mk (a * b) = mk b :=
299299
/-- The product over a set of an elements in distinct classes is in the lowest class. -/
300300
@[to_additive "The sum over a set of an elements in distinct classes is in the lowest class."]
301301
theorem mk_prod {ι : Type*} [LinearOrder ι] {s : Finset ι} (hnonempty : s.Nonempty)
302-
{a : ι → M} :
302+
{a : ι → M} :
303303
StrictMonoOn (mk ∘ a) s → mk (∏ i ∈ s, (a i)) = mk (a (s.min' hnonempty)) := by
304304
induction hnonempty using Finset.Nonempty.cons_induction with
305305
| singleton i => simp

Mathlib/GroupTheory/RegularWreathProduct.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ lemma iteratedWreathToPermHomInj (G : Type*) [Group G] :
236236
(RegularWreathProduct.toPermInj (IteratedWreathProduct G n) G (Fin n → G))
237237

238238
/-- The encoding of the Sylow `p`-subgroups of `Perm α` as an iterated wreath product. -/
239-
noncomputable def Sylow.mulEquivIteratedWreathProduct (p : ℕ) [hp : Fact (Nat.Prime p)] (n : ℕ)
239+
noncomputable def Sylow.mulEquivIteratedWreathProduct (p : ℕ) [hp : Fact (Nat.Prime p)] (n : ℕ)
240240
(α : Type*) [Finite α] (hα : Nat.card α = p ^ n)
241241
(G : Type*) [Group G] [Finite G] (hG : Nat.card G = p)
242242
(P : Sylow p (Equiv.Perm α)) :

Mathlib/NumberTheory/RamificationInertia/Galois.lean

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Assume `B / A` is a finite extension of Dedekind domains, `K` is the fraction ri
3838
3939
-/
4040

41-
open Algebra
41+
open Algebra Pointwise
4242

4343
attribute [local instance] FractionRing.liftAlgebra
4444

@@ -64,19 +64,20 @@ noncomputable def inertiaDegIn {A : Type*} [CommRing A] (p : Ideal A)
6464
section MulAction
6565

6666
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B] {p : Ideal A}
67+
{G : Type*} [Group G] [MulSemiringAction G B] [SMulCommClass G A B]
6768

68-
instance : MulAction (B ≃ₐ[A] B) (primesOver p B) where
69-
smul σ Q := primesOver.mk p (map σ Q.1)
70-
one_smul Q := Subtype.val_inj.mp (map_id Q.1)
71-
mul_smul σ τ Q := Subtype.val_inj.mp (Q.1.map_map τ.toRingHom σ.toRingHom).symm
69+
instance : MulAction G (primesOver p B) where
70+
smul σ Q := primesOver.mk p (σ • Q.1)
71+
one_smul Q := Subtype.ext (one_smul G Q.1)
72+
mul_smul σ τ Q := Subtype.ext (mul_smul σ τ Q.1)
7273

7374
@[simp]
74-
theorem coe_smul_primesOver (σ : B ≃ₐ[A] B) (P : primesOver p B): (σ • P).1 = map σ P :=
75+
theorem coe_smul_primesOver (σ : G) (P : primesOver p B) : (σ • P).1 = σ • P.1 :=
7576
rfl
7677

7778
@[simp]
78-
theorem coe_smul_primesOver_mk (σ : B ≃ₐ[A] B) (P : Ideal B) [P.IsPrime] [P.LiesOver p] :
79-
(σ • primesOver.mk p P).1 = map σ P :=
79+
theorem coe_smul_primesOver_mk (σ : G) (P : Ideal B) [P.IsPrime] [P.LiesOver p] :
80+
(σ • primesOver.mk p P).1 = σ • P :=
8081
rfl
8182

8283
variable (K L : Type*) [Field K] [Field L] [Algebra A K] [IsFractionRing A K] [Algebra B L]

Mathlib/RepresentationTheory/Homological/GroupCohomology/Basic.lean

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ $\mathrm{H}^n(G, A) \cong \mathrm{Ext}^n(k, A),$ where $\mathrm{Ext}$ is taken i
3030
`Rep k G`.
3131
3232
To talk about cohomology in low degree, please see the file
33-
`Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean`, which gives simpler
34-
expressions for `H⁰`, `H¹`, `H²` than the definition `groupCohomology` in this file.
33+
`Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean`, which provides API
34+
specialized to `H⁰`, `H¹`, `H²`.
3535
3636
## Main definitions
3737
@@ -54,8 +54,6 @@ possible scalar action diamonds.
5454
5555
## TODO
5656
57-
* API for cohomology in low degree: $\mathrm{H}^0, \mathrm{H}^1$ and $\mathrm{H}^2.$ For example,
58-
the inflation-restriction exact sequence.
5957
* The long exact sequence in cohomology attached to a short exact sequence of representations.
6058
* Upgrading `groupCohomologyIsoExt` to an isomorphism of derived functors.
6159
* Profinite cohomology.

Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean

Lines changed: 93 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -231,51 +231,55 @@ section H0
231231

232232
/-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`,
233233
this 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

280284
end H0
281285
section 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`,
358362
this 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+
396393
section 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]
402399
noncomputable 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. -/
416410
instance : 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

471461
end 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`,
543533
this 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

570546
variable [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

576555
end H2
577556

Mathlib/RepresentationTheory/Homological/GroupCohomology/Hilbert90.lean

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,10 @@ variable (K L : Type) [Field K] [Field L] [Algebra K L] [FiniteDimensional K L]
9999

100100
/-- Noether's generalization of Hilbert's Theorem 90: given a finite extension of fields `L/K`, the
101101
first group cohomology `H¹(Aut_K(L), Lˣ)` is trivial. -/
102-
noncomputable instance H1ofAutOnUnitsUnique : Unique (H1 (Rep.ofAlgebraAutOnUnits K L)) where
102+
noncomputable instance H1ofAutOnUnitsUnique [DecidableEq (L ≃ₐ[K] L)] :
103+
Unique (H1 (Rep.ofAlgebraAutOnUnits K L)) where
103104
default := 0
104-
uniq := fun a => Quotient.inductionOn' a fun x => (H1π_eq_zero_iff _).2 <| by
105+
uniq := fun a => H1_induction_on a fun x => (H1π_eq_zero_iff _).2 <| by
105106
refine (oneCoboundariesOfIsMulOneCoboundary ?_).2
106107
rcases isMulOneCoboundary_of_isMulOneCocycle_of_aut_to_units x.1
107108
(isMulOneCocycle_of_mem_oneCocycles _ x.2) with ⟨β, hβ⟩

0 commit comments

Comments
 (0)