@@ -136,8 +136,8 @@ include hR₁ hR₂
136136
137137/-- The five lemma. -/
138138theorem isIso_of_epi_of_isIso_of_isIso_of_mono (h₀ : Epi (app' φ 0 )) (h₁ : IsIso (app' φ 1 ))
139- (h₂ : IsIso (app' φ 3 )) (h₃ : Mono (app' φ 4 )) : IsIso (app' φ 2 ) := by
140- dsimp at h₀ h₁ h₂ h₃
139+ (h₃ : IsIso (app' φ 3 )) (h₄ : Mono (app' φ 4 )) : IsIso (app' φ 2 ) := by
140+ dsimp at h₀ h₁ h₃ h₄
141141 have : Mono (app' φ 2 ) := by
142142 apply mono_of_epi_of_mono_of_mono (δlastFunctor.map φ) (R₁.exact_iff_δlast.1 hR₁).1
143143 (R₂.exact_iff_δlast.1 hR₂).1 <;> dsimp <;> infer_instance
@@ -148,6 +148,61 @@ theorem isIso_of_epi_of_isIso_of_isIso_of_mono (h₀ : Epi (app' φ 0)) (h₁ :
148148
149149end Five
150150
151+ section Four
152+
153+ variable {n k : ℕ} (h : k + 3 ≤ n) {R₁ R₂ : ComposableArrows C n}
154+ (hR₁ : R₁.Exact) (hR₂ : R₂.Exact) (φ : R₁ ⟶ R₂)
155+
156+ include hR₁ hR₂ in
157+ /-- Variant of the first 4-lemma for complexes of any size -/
158+ theorem mono_of_epi_of_mono_of_mono'' (k₀ k₁ k₂ k₃ : ℕ)
159+ (hk₀ : k₀ = k) (hk₁ : k₁ = k + 1 )
160+ (hk₂ : k₂ = k + 2 ) (hk₃ : k₃ = k + 3 )
161+ (h₀ : Epi (app' φ k₀)) (h₁ : Mono (app' φ k₁))
162+ (h₃ : Mono (app' φ k₃)) : Mono (app' φ k₂) := by
163+ subst_vars
164+ change Epi (app' φ (k₀ + 0 )) at h₀
165+ rw [← natAddLEFunctor_app' h] at h₀ h₁ h₃ ⊢
166+ exact mono_of_epi_of_mono_of_mono _ (natAddLEFunctor_obj_exact h hR₁)
167+ (natAddLEFunctor_obj_exact h hR₂) h₀ h₁ h₃
168+
169+ include hR₁ hR₂ in
170+ /-- Variant of the second 4-lemma for complexes of any size -/
171+ theorem epi_of_epi_of_epi_of_mono'' (k₀ k₁ k₂ k₃ : ℕ)
172+ (hk₀ : k₀ = k) (hk₁ : k₁ = k + 1 )
173+ (hk₂ : k₂ = k + 2 ) (hk₃ : k₃ = k + 3 )
174+ (h₀ : Epi (app' φ k₀)) (h₂ : Epi (app' φ k₂))
175+ (h₃ : Mono (app' φ k₃)) : Epi (app' φ k₁) := by
176+ subst_vars
177+ change Epi (app' φ (k₀ + 0 )) at h₀
178+ rw [← natAddLEFunctor_app' h] at h₀ h₂ h₃ ⊢
179+ exact epi_of_epi_of_epi_of_mono _ (natAddLEFunctor_obj_exact h hR₁)
180+ (natAddLEFunctor_obj_exact h hR₂) h₀ h₂ h₃
181+
182+ end Four
183+
184+ section Five
185+
186+ variable {n k : ℕ} (h : k + 4 ≤ n) {R₁ R₂ : ComposableArrows C n}
187+ (hR₁ : R₁.Exact) (hR₂ : R₂.Exact) (φ : R₁ ⟶ R₂)
188+
189+ include hR₁ hR₂ in
190+ /-- Variant of the 5-lemma for complexes of any size -/
191+ theorem isIso_of_epi_of_isIso_of_isIso_of_mono' (k₀ k₁ k₂ k₃ k₄ : ℕ)
192+ (hk₀ : k₀ = k) (hk₁ : k₁ = k + 1 )
193+ (hk₂ : k₂ = k + 2 ) (hk₃ : k₃ = k + 3 )
194+ (hk₄ : k₄ = k + 4 ) (h₀ : Epi (app' φ k₀))
195+ (h₁ : IsIso (app' φ k₁)) (h₃ : IsIso (app' φ k₃))
196+ (h₄ : Mono (app' φ k₄)) :
197+ IsIso (app' φ k₂) := by
198+ subst_vars
199+ change Epi (app' φ (k₀ + 0 )) at h₀
200+ rw [← natAddLEFunctor_app' h] at h₀ h₁ h₃ h₄ ⊢
201+ exact isIso_of_epi_of_isIso_of_isIso_of_mono (natAddLEFunctor_obj_exact h hR₁)
202+ (natAddLEFunctor_obj_exact h hR₂) _ h₀ h₁ h₃ h₄
203+
204+ end Five
205+
151206/-! The following "three lemmas" for morphisms in `ComposableArrows C 2` are
152207special cases of "four lemmas" applied to diagrams where some of the
153208leftmost or rightmost maps (or objects) are zero. -/
0 commit comments