Theorem: CategoryTheory.ShortComplex.epi_τ₂_of_exact_of_epi
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_3, u_1} C
inst✝⁷ : Category.{?u.151867, u_2} D
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
S : ShortComplex C
inst✝⁴ : Balanced C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
h₂ : S₂.Exact
inst✝³ : Epi S₁.g
inst✝² : Epi S₂.g
inst✝¹ : Epi φ.τ₁
inst✝ : Epi φ.τ₃
⊢ Epi φ.τ₂
state_after: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_3, u_1} C
inst✝⁷ : Category.{?u.151867, u_2} D
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
S : ShortComplex C
inst✝⁴ : Balanced C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
h₂ : S₂.Exact
inst✝³ : Epi S₁.g
inst✝² : Epi S₂.g
inst✝¹ : Epi φ.τ₁
inst✝ : Epi φ.τ₃
this : Mono S₁.op.f
⊢ Epi φ.τ₂
tactic: have : Mono S₁.op.f := by dsimp; infer_instance
state_before: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_3, u_1} C
inst✝⁷ : Category.{?u.151867, u_2} D
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
S : ShortComplex C
inst✝⁴ : Balanced C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
h₂ : S₂.Exact
inst✝³ : Epi S₁.g
inst✝² : Epi S₂.g
inst✝¹ : Epi φ.τ₁
inst✝ : Epi φ.τ₃
this : Mono S₁.op.f
⊢ Epi φ.τ₂
state_after: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_3, u_1} C
inst✝⁷ : Category.{?u.151867, u_2} D
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
S : ShortComplex C
inst✝⁴ : Balanced C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
h₂ : S₂.Exact
inst✝³ : Epi S₁.g
inst✝² : Epi S₂.g
inst✝¹ : Epi φ.τ₁
inst✝ : Epi φ.τ₃
this✝ : Mono S₁.op.f
this : Mono S₂.op.f
⊢ Epi φ.τ₂
tactic: have : Mono S₂.op.f := by dsimp; infer_instance
state_before: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_3, u_1} C
inst✝⁷ : Category.{?u.151867, u_2} D
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
S : ShortComplex C
inst✝⁴ : Balanced C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
h₂ : S₂.Exact
inst✝³ : Epi S₁.g
inst✝² : Epi S₂.g
inst✝¹ : Epi φ.τ₁
inst✝ : Epi φ.τ₃
this✝ : Mono S₁.op.f
this : Mono S₂.op.f
⊢ Epi φ.τ₂
state_after: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_3, u_1} C
inst✝⁷ : Category.{?u.151867, u_2} D
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
S : ShortComplex C
inst✝⁴ : Balanced C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
h₂ : S₂.Exact
inst✝³ : Epi S₁.g
inst✝² : Epi S₂.g
inst✝¹ : Epi φ.τ₁
inst✝ : Epi φ.τ₃
this✝¹ : Mono S₁.op.f
this✝ : Mono S₂.op.f
this : Mono (opMap φ).τ₁
⊢ Epi φ.τ₂
tactic: have : Mono (opMap φ).τ₁ := by dsimp; infer_instance
state_before: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_3, u_1} C
inst✝⁷ : Category.{?u.151867, u_2} D
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
S : ShortComplex C
inst✝⁴ : Balanced C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
h₂ : S₂.Exact
inst✝³ : Epi S₁.g
inst✝² : Epi S₂.g
inst✝¹ : Epi φ.τ₁
inst✝ : Epi φ.τ₃
this✝¹ : Mono S₁.op.f
this✝ : Mono S₂.op.f
this : Mono (opMap φ).τ₁
⊢ Epi φ.τ₂
state_after: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_3, u_1} C
inst✝⁷ : Category.{?u.151867, u_2} D
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
S : ShortComplex C
inst✝⁴ : Balanced C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
h₂ : S₂.Exact
inst✝³ : Epi S₁.g
inst✝² : Epi S₂.g
inst✝¹ : Epi φ.τ₁
inst✝ : Epi φ.τ₃
this✝² : Mono S₁.op.f
this✝¹ : Mono S₂.op.f
this✝ : Mono (opMap φ).τ₁
this : Mono (opMap φ).τ₃
⊢ Epi φ.τ₂
tactic: have : Mono (opMap φ).τ₃ := by dsimp; infer_instance
state_before: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_3, u_1} C
inst✝⁷ : Category.{?u.151867, u_2} D
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
S : ShortComplex C
inst✝⁴ : Balanced C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
h₂ : S₂.Exact
inst✝³ : Epi S₁.g
inst✝² : Epi S₂.g
inst✝¹ : Epi φ.τ₁
inst✝ : Epi φ.τ₃
this✝² : Mono S₁.op.f
this✝¹ : Mono S₂.op.f
this✝ : Mono (opMap φ).τ₁
this : Mono (opMap φ).τ₃
⊢ Epi φ.τ₂
state_after: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_3, u_1} C
inst✝⁷ : Category.{?u.151867, u_2} D
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
S : ShortComplex C
inst✝⁴ : Balanced C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
h₂ : S₂.Exact
inst✝³ : Epi S₁.g
inst✝² : Epi S₂.g
inst✝¹ : Epi φ.τ₁
inst✝ : Epi φ.τ₃
this✝³ : Mono S₁.op.f
this✝² : Mono S₂.op.f
this✝¹ : Mono (opMap φ).τ₁
this✝ : Mono (opMap φ).τ₃
this : Mono (opMap φ).τ₂
⊢ Epi φ.τ₂
tactic: have := mono_τ₂_of_exact_of_mono (opMap φ) h₂.op
state_before: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_3, u_1} C
inst✝⁷ : Category.{?u.151867, u_2} D
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
S : ShortComplex C
inst✝⁴ : Balanced C
S₁ S₂ : ShortComplex C
φ : S₁ ⟶ S₂
h₂ : S₂.Exact
inst✝³ : Epi S₁.g
inst✝² : Epi S₂.g
inst✝¹ : Epi φ.τ₁
inst✝ : Epi φ.τ₃
this✝³ : Mono S₁.op.f
this✝² : Mono S₂.op.f
this✝¹ : Mono (opMap φ).τ₁
this✝ : Mono (opMap φ).τ₃
this : Mono (opMap φ).τ₂
⊢ Epi φ.τ₂
state_after: no goals
tactic: exact unop_epi_of_mono (opMap φ).τ₂