Theorem: CategoryTheory.Split.map
File: Mathlib/Algebra/Homology/ShortExact/Preadditive.lean

tactic: obtain ⟨φ, χ, h1, h2, h3, h4, h5⟩ := h
state_before: 𝒜✝ : Type ?u.45480
inst✝⁸ : Category 𝒜✝
A✝ B✝ C✝ A' B' C' : 𝒜✝
f✝ : A✝ ⟶ B✝
g✝ : B✝ ⟶ C✝
f' : A' ⟶ B'
g' : B' ⟶ C'
inst✝⁷ : Preadditive 𝒜✝
inst✝⁶ : HasKernels 𝒜✝
inst✝⁵ : HasImages 𝒜✝
𝒜 : Type u_1
ℬ : Type u_2
inst✝⁴ : Category 𝒜
inst✝³ : Preadditive 𝒜
inst✝² : Category ℬ
inst✝¹ : Preadditive ℬ
F : 𝒜 ⥤ ℬ
inst✝ : Functor.Additive F
A B C : 𝒜
f : A ⟶ B
g : B ⟶ C
h : Split f g
⊢ Split (F.map f) (F.map g)

tactic: refine ⟨⟨F.map φ, F.map χ, ?_⟩⟩
state_before: case mk.intro.intro.intro.intro.intro.intro
𝒜✝ : Type ?u.45480
inst✝⁸ : Category 𝒜✝
A✝ B✝ C✝ A' B' C' : 𝒜✝
f✝ : A✝ ⟶ B✝
g✝ : B✝ ⟶ C✝
f' : A' ⟶ B'
g' : B' ⟶ C'
inst✝⁷ : Preadditive 𝒜✝
inst✝⁶ : HasKernels 𝒜✝
inst✝⁵ : HasImages 𝒜✝
𝒜 : Type u_1
ℬ : Type u_2
inst✝⁴ : Category 𝒜
inst✝³ : Preadditive 𝒜
inst✝² : Category ℬ
inst✝¹ : Preadditive ℬ
F : 𝒜 ⥤ ℬ
inst✝ : Functor.Additive F
A B C : 𝒜
f : A ⟶ B
g : B ⟶ C
φ : B ⟶ A
χ : C ⟶ B
h1 : f ≫ φ = 𝟙 A
h2 : χ ≫ g = 𝟙 C
h3 : f ≫ g = 0
h4 : χ ≫ φ = 0
h5 : φ ≫ f + g ≫ χ = 𝟙 B
⊢ Split (F.map f) (F.map g)

tactic: simp only [← F.map_comp, ← F.map_id]
state_before: case mk.intro.intro.intro.intro.intro.intro
𝒜✝ : Type ?u.45480
inst✝⁸ : Category 𝒜✝
A✝ B✝ C✝ A' B' C' : 𝒜✝
f✝ : A✝ ⟶ B✝
g✝ : B✝ ⟶ C✝
f' : A' ⟶ B'
g' : B' ⟶ C'
inst✝⁷ : Preadditive 𝒜✝
inst✝⁶ : HasKernels 𝒜✝
inst✝⁵ : HasImages 𝒜✝
𝒜 : Type u_1
ℬ : Type u_2
inst✝⁴ : Category 𝒜
inst✝³ : Preadditive 𝒜
inst✝² : Category ℬ
inst✝¹ : Preadditive ℬ
F : 𝒜 ⥤ ℬ
inst✝ : Functor.Additive F
A B C : 𝒜
f : A ⟶ B
g : B ⟶ C
φ : B ⟶ A
χ : C ⟶ B
h1 : f ≫ φ = 𝟙 A
h2 : χ ≫ g = 𝟙 C
h3 : f ≫ g = 0
h4 : χ ≫ φ = 0
h5 : φ ≫ f + g ≫ χ = 𝟙 B
⊢ F.map f ≫ F.map φ = 𝟙 (F.obj A) ∧
    F.map χ ≫ F.map g = 𝟙 (F.obj C) ∧
      F.map f ≫ F.map g = 0 ∧ F.map χ ≫ F.map φ = 0 ∧ F.map φ ≫ F.map f + F.map g ≫ F.map χ = 𝟙 (F.obj B)

tactic: rw [← F.map_add]
state_before: case mk.intro.intro.intro.intro.intro.intro
𝒜✝ : Type ?u.45480
inst✝⁸ : Category 𝒜✝
A✝ B✝ C✝ A' B' C' : 𝒜✝
f✝ : A✝ ⟶ B✝
g✝ : B✝ ⟶ C✝
f' : A' ⟶ B'
g' : B' ⟶ C'
inst✝⁷ : Preadditive 𝒜✝
inst✝⁶ : HasKernels 𝒜✝
inst✝⁵ : HasImages 𝒜✝
𝒜 : Type u_1
ℬ : Type u_2
inst✝⁴ : Category 𝒜
inst✝³ : Preadditive 𝒜
inst✝² : Category ℬ
inst✝¹ : Preadditive ℬ
F : 𝒜 ⥤ ℬ
inst✝ : Functor.Additive F
A B C : 𝒜
f : A ⟶ B
g : B ⟶ C
φ : B ⟶ A
χ : C ⟶ B
h1 : f ≫ φ = 𝟙 A
h2 : χ ≫ g = 𝟙 C
h3 : f ≫ g = 0
h4 : χ ≫ φ = 0
h5 : φ ≫ f + g ≫ χ = 𝟙 B
⊢ F.map (f ≫ φ) = F.map (𝟙 A) ∧
    F.map (χ ≫ g) = F.map (𝟙 C) ∧ F.map (f ≫ g) = 0 ∧ F.map (χ ≫ φ) = 0 ∧ F.map (φ ≫ f) + F.map (g ≫ χ) = F.map (𝟙 B)

tactic: simp only [F.map_zero, *, true_and]
state_before: case mk.intro.intro.intro.intro.intro.intro
𝒜✝ : Type ?u.45480
inst✝⁸ : Category 𝒜✝
A✝ B✝ C✝ A' B' C' : 𝒜✝
f✝ : A✝ ⟶ B✝
g✝ : B✝ ⟶ C✝
f' : A' ⟶ B'
g' : B' ⟶ C'
inst✝⁷ : Preadditive 𝒜✝
inst✝⁶ : HasKernels 𝒜✝
inst✝⁵ : HasImages 𝒜✝
𝒜 : Type u_1
ℬ : Type u_2
inst✝⁴ : Category 𝒜
inst✝³ : Preadditive 𝒜
inst✝² : Category ℬ
inst✝¹ : Preadditive ℬ
F : 𝒜 ⥤ ℬ
inst✝ : Functor.Additive F
A B C : 𝒜
f : A ⟶ B
g : B ⟶ C
φ : B ⟶ A
χ : C ⟶ B
h1 : f ≫ φ = 𝟙 A
h2 : χ ≫ g = 𝟙 C
h3 : f ≫ g = 0
h4 : χ ≫ φ = 0
h5 : φ ≫ f + g ≫ χ = 𝟙 B
⊢ F.map (f ≫ φ) = F.map (𝟙 A) ∧
    F.map (χ ≫ g) = F.map (𝟙 C) ∧ F.map (f ≫ g) = 0 ∧ F.map (χ ≫ φ) = 0 ∧ F.map (φ ≫ f + g ≫ χ) = F.map (𝟙 B)