Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 3feb151

Browse files
committed
feat(algebra/homology,category_theory/abelian): exact_comp_mono_iff (#14410)
From LTE.
1 parent 6834a24 commit 3feb151

2 files changed

Lines changed: 20 additions & 5 deletions

File tree

src/algebra/homology/exact.lean

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -198,13 +198,17 @@ begin
198198
apply_instance,
199199
end
200200

201+
/-- The dual of this lemma is only true when `V` is abelian, see `abelian.exact_epi_comp_iff`. -/
202+
lemma exact_comp_mono_iff [mono h] : exact f (g ≫ h) ↔ exact f g :=
203+
begin
204+
refine ⟨λ hfg, ⟨zero_of_comp_mono h (by rw [category.assoc, hfg.1]), _⟩, λ h, exact_comp_mono h⟩,
205+
rw ← (iso.eq_comp_inv _).1 (image_to_kernel_comp_mono _ _ h hfg.1),
206+
haveI := hfg.2, apply_instance
207+
end
208+
201209
@[simp]
202210
lemma exact_comp_iso [is_iso h] : exact f (g ≫ h) ↔ exact f g :=
203-
⟨λ w, begin
204-
rw [←category.comp_id g, ←is_iso.hom_inv_id h, ←category.assoc],
205-
exactI exact_comp_mono w,
206-
end,
207-
λ w, exact_comp_mono w⟩
211+
exact_comp_mono_iff
208212

209213
lemma exact_kernel_subobject_arrow : exact (kernel_subobject f).arrow f :=
210214
begin

src/category_theory/abelian/exact.lean

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,17 @@ begin
121121
is_iso.comp_right_eq_zero _ (cokernel_comparison f F)],
122122
end
123123

124+
/-- The dual result is true even in non-abelian categories, see
125+
`category_theory.exact_epi_comp_iff`. -/
126+
lemma exact_epi_comp_iff {W : C} (h : W ⟶ X) [epi h] : exact (h ≫ f) g ↔ exact f g :=
127+
begin
128+
refine ⟨λ hfg, _, λ h, exact_epi_comp h⟩,
129+
let hc := is_cokernel_of_comp _ _ (colimit.is_colimit (parallel_pair (h ≫ f) 0))
130+
(by rw [← cancel_epi h, ← category.assoc, cokernel_cofork.condition, comp_zero]) rfl,
131+
refine (exact_iff' _ _ (limit.is_limit _) hc).2 ⟨_, ((exact_iff _ _).1 hfg).2⟩,
132+
exact zero_of_epi_comp h (by rw [← hfg.1, category.assoc])
133+
end
134+
124135
/-- If `(f, g)` is exact, then `images.image.ι f` is a kernel of `g`. -/
125136
def is_limit_image (h : exact f g) :
126137
is_limit

0 commit comments

Comments
 (0)