@@ -228,6 +228,51 @@ theorem epi_of_epi_of_epi_of_epi (hR₂ : R₂.Exact) (hR₁' : Epi (R₁.map' 1
228228 rw [ShortComplex.exact_iff_epi _ (by simp)]
229229 exact hR₁'
230230
231+ open ZeroObject
232+
233+ set_option backward.isDefEq.respectTransparency false in
234+ lemma isIso_of_epi_of_isIso (hR₁ : R₁.Exact) (hR₂ : R₂.Exact) (hR₁' : Epi (R₁.map' 1 2 ))
235+ (hR₂' : Epi (R₂.map' 1 2 )) (h₀ : Epi (app' φ 0 )) (h₁ : IsIso (app' φ 1 )) :
236+ IsIso (app' φ 2 ) := by
237+ let ψ : mk₄ (R₁.map' 0 1 ) (R₁.map' 1 2 ) (0 : _ ⟶ (0 : C)) (0 : _ ⟶ (0 : C)) ⟶
238+ mk₄ (R₂.map' 0 1 ) (R₂.map' 1 2 ) (0 : _ ⟶ (0 : C)) (0 : _ ⟶ (0 : C)) :=
239+ homMk₄ (app' φ 0 ) (app' φ 1 ) (app' φ 2 ) 0 0 (naturality' φ 0 1 )
240+ (naturality' φ 1 2 ) (by simp) (by simp)
241+ refine isIso_of_epi_of_isIso_of_isIso_of_mono ?_ ?_ ψ h₀ h₁ inferInstance inferInstance
242+ · refine exact_of_δ₀ (hR₁.exact 0 ).exact_toComposableArrows (exact_of_δ₀ ?_ ?_)
243+ · refine exact₂_mk _ (by simp) ?_
244+ rwa [ShortComplex.exact_iff_epi _ (by simp)]
245+ · refine exact₂_mk _ (by simp) ?_
246+ rw [ShortComplex.exact_iff_epi _ (by simp)]
247+ infer_instance
248+ · refine exact_of_δ₀ (hR₂.exact 0 ).exact_toComposableArrows (exact_of_δ₀ ?_ ?_)
249+ · refine exact₂_mk _ (by simp) ?_
250+ rwa [ShortComplex.exact_iff_epi _ (by simp)]
251+ · refine exact₂_mk _ (by simp) ?_
252+ rw [ShortComplex.exact_iff_epi _ (by simp)]
253+ infer_instance
254+
255+ set_option backward.isDefEq.respectTransparency false in
256+ lemma isIso_of_isIso_of_mono (hR₁ : R₁.Exact) (hR₂ : R₂.Exact) (hR₁' : Mono (R₁.map' 0 1 ))
257+ (hR₂' : Mono (R₂.map' 0 1 )) (h₁ : IsIso (app' φ 1 )) (h₂ : Mono (app' φ 2 )) :
258+ IsIso (app' φ 0 ) := by
259+ let ψ : mk₄ (0 : (0 : C) ⟶ (0 : C)) (0 : _ ⟶ _) (R₁.map' 0 1 ) (R₁.map' 1 2 ) ⟶
260+ mk₄ (0 : (0 : C) ⟶ (0 : C)) (0 : _ ⟶ _) (R₂.map' 0 1 ) (R₂.map' 1 2 ) :=
261+ homMk₄ 0 0 (app' φ 0 ) (app' φ 1 ) (app' φ 2 ) (by simp) (by simp) (naturality' φ 0 1 )
262+ (naturality' φ 1 2 )
263+ refine isIso_of_epi_of_isIso_of_isIso_of_mono ?_ ?_ ψ inferInstance inferInstance h₁ h₂
264+ · refine exact_of_δ₀ (exact₂_mk _ (by simp) ?_) (exact_of_δ₀ ?_ (exact₂_mk _ _ (hR₁.exact 0 )))
265+ · rw [ShortComplex.exact_iff_mono _ (by simp)]
266+ infer_instance
267+ · refine exact₂_mk _ (by simp) ?_
268+ rwa [ShortComplex.exact_iff_mono _ (by simp)]
269+ · refine exact_of_δ₀ ?_ (exact_of_δ₀ ?_ (exact₂_mk _ _ (hR₂.exact 0 )))
270+ · refine exact₂_mk _ (by simp) ?_
271+ rw [ShortComplex.exact_iff_mono _ (by simp)]
272+ infer_instance
273+ · refine exact₂_mk _ (by simp) ?_
274+ rwa [ShortComplex.exact_iff_mono _ (by simp)]
275+
231276end Three
232277
233278end Abelian
0 commit comments