@@ -3,10 +3,11 @@ Copyright (c) 2023 Joël Riou. All rights reserved.
33Released under Apache 2.0 license as described in the file LICENSE.
44Authors: Joël Riou
55-/
6- import Mathlib.Algebra.Homology.ShortComplex.ShortExact
76import Mathlib.Algebra.Category.Grp.Abelian
87import Mathlib.Algebra.Category.Grp.Kernels
98import Mathlib.Algebra.Exact
9+ import Mathlib.Algebra.Homology.ShortComplex.ShortExact
10+ import Mathlib.GroupTheory.QuotientGroup.Finite
1011
1112/-!
1213# Homology and exactness of short complexes of abelian groups
@@ -121,6 +122,8 @@ lemma ab_exact_iff_function_exact :
121122 simp only [ab_zero_apply]
122123 · tauto
123124
125+ variable {S}
126+
124127lemma ab_exact_iff_ker_le_range : S.Exact ↔ S.g.hom.ker ≤ S.f.hom.range := S.ab_exact_iff
125128
126129lemma ab_exact_iff_range_eq_ker : S.Exact ↔ S.f.hom.range = S.g.hom.ker := by
@@ -134,7 +137,17 @@ lemma ab_exact_iff_range_eq_ker : S.Exact ↔ S.f.hom.range = S.g.hom.ker := by
134137 · intro h
135138 rw [h]
136139
137- variable {S}
140+ alias ⟨Exact.ab_range_eq_ker, _⟩ := ab_exact_iff_range_eq_ker
141+
142+ /-- In an exact sequence of abelian groups, if the first and last groups are finite, then so is the
143+ middle one. -/
144+ lemma Exact.ab_finite {S : ShortComplex Ab.{u}} (hS : S.Exact) [Finite S.X₁] [Finite S.X₃] :
145+ Finite S.X₂ := by
146+ have : Finite S.f.hom.range := Set.finite_range _
147+ have : Finite (S.X₂ ⧸ S.f.hom.range) := by
148+ rw [hS.ab_range_eq_ker]
149+ exact .of_equiv _ (QuotientAddGroup.quotientKerEquivRange _).toEquiv.symm
150+ exact .of_addSubgroup_quotient (H := S.f.hom.range)
138151
139152lemma ShortExact.ab_injective_f (hS : S.ShortExact) :
140153 Function.Injective S.f :=
@@ -144,12 +157,15 @@ lemma ShortExact.ab_surjective_g (hS : S.ShortExact) :
144157 Function.Surjective S.g :=
145158 (AddCommGrpCat.epi_iff_surjective _).1 hS.epi_g
146159
147- variable (S)
160+ /-- In a short exact sequence of abelian groups, the middle group is finite iff the first and last
161+ are. -/
162+ lemma ShortExact.ab_finite_iff {S : ShortComplex Ab.{u}} (hS : S.ShortExact) :
163+ Finite S.X₂ ↔ Finite S.X₁ ∧ Finite S.X₃ where
164+ mp _ := ⟨.of_injective _ hS.ab_injective_f, .of_surjective _ hS.ab_surjective_g⟩
165+ mpr | ⟨_, _⟩ => hS.exact.ab_finite
148166
149- lemma ShortExact.ab_exact_iff_function_exact :
150- S.Exact ↔ Function.Exact S.f S.g := by
151- rw [ab_exact_iff_range_eq_ker, AddMonoidHom.exact_iff]
152- tauto
167+ @[deprecated (since := "2025-11-03")]
168+ protected alias ShortExact.ab_exact_iff_function_exact := ab_exact_iff_function_exact
153169
154170end ShortComplex
155171
0 commit comments