File: Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean

full_name: CategoryTheory.ShortComplex.zero_apply
code: @[simp]
lemma ShortComplex.zero_apply
    [Limits.HasZeroMorphisms C] [(forget₂ C Ab).PreservesZeroMorphisms]
    (S : ShortComplex C) (x : (forget₂ C Ab).obj S.X₁) :
    ((forget₂ C Ab).map S.g) (((forget₂ C Ab).map S.f) x) = 0 
goal: ((CategoryTheory.forget₂ C Ab).map S.g) (((CategoryTheory.forget₂ C Ab).map S.f) x) = 0

full_name: CategoryTheory.Preadditive.mono_iff_injective
code: lemma Preadditive.mono_iff_injective {X Y : C} (f : X ⟶ Y) :
    Mono f ↔ Function.Injective ((forget₂ C Ab).map f) 
goal: CategoryTheory.Mono f ↔ Function.Injective ⇑((CategoryTheory.forget₂ C Ab).map f)

full_name: CategoryTheory.Preadditive.mono_iff_injective'
code: lemma Preadditive.mono_iff_injective' {X Y : C} (f : X ⟶ Y) :
    Mono f ↔ Function.Injective ((forget C).map f) 
goal: CategoryTheory.Mono f ↔ Function.Injective ((CategoryTheory.forget C).map f)

full_name: CategoryTheory.Preadditive.epi_iff_surjective
code: lemma Preadditive.epi_iff_surjective {X Y : C} (f : X ⟶ Y) :
    Epi f ↔ Function.Surjective ((forget₂ C Ab).map f) 
goal: CategoryTheory.Epi f ↔ Function.Surjective ⇑((CategoryTheory.forget₂ C Ab).map f)

full_name: CategoryTheory.Preadditive.epi_iff_surjective'
code: lemma Preadditive.epi_iff_surjective' {X Y : C} (f : X ⟶ Y) :
    Epi f ↔ Function.Surjective ((forget C).map f) 
goal: CategoryTheory.Epi f ↔ Function.Surjective ((CategoryTheory.forget C).map f)

full_name: CategoryTheory.ShortComplex.exact_iff_exact_map_forget₂
code: lemma exact_iff_exact_map_forget₂ [S.HasHomology] :
    S.Exact ↔ (S.map (forget₂ C Ab)).Exact 
goal: S.Exact ↔ (S.map (CategoryTheory.forget₂ C Ab)).Exact

full_name: CategoryTheory.ShortComplex.exact_iff_of_concreteCategory
code: lemma exact_iff_of_concreteCategory [S.HasHomology] :
    S.Exact ↔ ∀ (x₂ : (forget₂ C Ab).obj S.X₂) (_ : ((forget₂ C Ab).map S.g) x₂ = 0),
      ∃ (x₁ : (forget₂ C Ab).obj S.X₁), ((forget₂ C Ab).map S.f) x₁ = x₂ 
goal: S.Exact ↔
  ∀ (x₂ : ↑((CategoryTheory.forget₂ C Ab).obj S.X₂)),
    ((CategoryTheory.forget₂ C Ab).map S.g) x₂ = 0 → ∃ x₁, ((CategoryTheory.forget₂ C Ab).map S.f) x₁ = x₂

full_name: CategoryTheory.ShortComplex.ShortExact.injective_f
code: lemma ShortExact.injective_f (hS : S.ShortExact) :
    Function.Injective ((forget₂ C Ab).map S.f) 
goal: Function.Injective ⇑((CategoryTheory.forget₂ C Ab).map S.f)

full_name: CategoryTheory.ShortComplex.ShortExact.surjective_g
code: lemma ShortExact.surjective_g (hS : S.ShortExact) :
    Function.Surjective ((forget₂ C Ab).map S.g) 
goal: Function.Surjective ⇑((CategoryTheory.forget₂ C Ab).map S.g)

full_name: CategoryTheory.ShortComplex.cyclesMk
code: /-- Constructor for cycles of short complexes in a concrete category. -/
noncomputable def cyclesMk [S.HasHomology] (x₂ : (forget₂ C Ab).obj S.X₂)
    (hx₂ : ((forget₂ C Ab).map S.g) x₂ = 0) :
    (forget₂ C Ab).obj S.cycles 
goal: ↑((CategoryTheory.forget₂ C Ab).obj S.cycles)

full_name: CategoryTheory.ShortComplex.i_cyclesMk
code: @[simp]
lemma i_cyclesMk [S.HasHomology] (x₂ : (forget₂ C Ab).obj S.X₂)
    (hx₂ : ((forget₂ C Ab).map S.g) x₂ = 0) :
    (forget₂ C Ab).map S.iCycles (S.cyclesMk x₂ hx₂) = x₂ 
goal: ((CategoryTheory.forget₂ C Ab).map S.iCycles) (S.cyclesMk x₂ hx₂) = x₂

full_name: CategoryTheory.ShortComplex.SnakeInput.δ_apply
code: /-- This lemma allows the computation of the connecting homomorphism
`D.δ` when `D : SnakeInput C` and `C` is a concrete category. -/
lemma δ_apply (x₃ : D.L₀.X₃) (x₂ : D.L₁.X₂) (x₁ : D.L₂.X₁)
    (h₂ : D.L₁.g x₂ = D.v₀₁.τ₃ x₃) (h₁ : D.L₂.f x₁ = D.v₁₂.τ₂ x₂) :
    D.δ x₃ = D.v₂₃.τ₁ x₁ 
goal: D.δ x₃ = D.v₂₃.τ₁ x₁

full_name: CategoryTheory.ShortComplex.SnakeInput.δ_apply'
code: /-- This lemma allows the computation of the connecting homomorphism
`D.δ` when `D : SnakeInput C` and `C` is a concrete category. -/
lemma δ_apply' (x₃ : (forget₂ C Ab).obj D.L₀.X₃)
    (x₂ : (forget₂ C Ab).obj D.L₁.X₂) (x₁ : (forget₂ C Ab).obj D.L₂.X₁)
    (h₂ : (forget₂ C Ab).map D.L₁.g x₂ = (forget₂ C Ab).map D.v₀₁.τ₃ x₃)
    (h₁ : (forget₂ C Ab).map D.L₂.f x₁ = (forget₂ C Ab).map D.v₁₂.τ₂ x₂) :
    (forget₂ C Ab).map D.δ x₃ = (forget₂ C Ab).map D.v₂₃.τ₁ x₁ 
goal: ((CategoryTheory.forget₂ C Ab).map D.δ) x₃ = ((CategoryTheory.forget₂ C Ab).map D.v₂₃.τ₁) x₁