Theorem: CategoryTheory.Limits.BinaryBicones.functoriality_obj_fst
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

Proof steps:
state_before: J : Type w
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
P Q : C
F : C ⥤ D
inst✝ : F.PreservesZeroMorphisms
A : BinaryBicone P Q
⊢ F.map A.inl ≫ F.map A.fst = 𝟙 (F.obj P)
state_after: no goals
tactic: rw [← F.map_comp, A.inl_fst, F.map_id]
state_before: J : Type w
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
P Q : C
F : C ⥤ D
inst✝ : F.PreservesZeroMorphisms
A : BinaryBicone P Q
⊢ F.map A.inl ≫ F.map A.snd = 0
state_after: no goals
tactic: rw [← F.map_comp, A.inl_snd, F.map_zero]
state_before: J : Type w
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
P Q : C
F : C ⥤ D
inst✝ : F.PreservesZeroMorphisms
A : BinaryBicone P Q
⊢ F.map A.inr ≫ F.map A.fst = 0
state_after: no goals
tactic: rw [← F.map_comp, A.inr_fst, F.map_zero]
state_before: J : Type w
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
P Q : C
F : C ⥤ D
inst✝ : F.PreservesZeroMorphisms
A : BinaryBicone P Q
⊢ F.map A.inr ≫ F.map A.snd = 𝟙 (F.obj Q)
state_after: no goals
tactic: rw [← F.map_comp, A.inr_snd, F.map_id]
state_before: J : Type w
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
P Q : C
F : C ⥤ D
inst✝ : F.PreservesZeroMorphisms
X✝ Y✝ : BinaryBicone P Q
f : X✝ ⟶ Y✝
⊢ F.map f.hom ≫
      ((fun A =>
            { pt := F.obj A.pt, fst := F.map A.fst, snd := F.map A.snd, inl := F.map A.inl, inr := F.map A.inr,
              inl_fst := ⋯, inl_snd := ⋯, inr_fst := ⋯, inr_snd := ⋯ })
          Y✝).fst =
    ((fun A =>
          { pt := F.obj A.pt, fst := F.map A.fst, snd := F.map A.snd, inl := F.map A.inl, inr := F.map A.inr,
            inl_fst := ⋯, inl_snd := ⋯, inr_fst := ⋯, inr_snd := ⋯ })
        X✝).fst
state_after: no goals
tactic: simp [-BinaryBiconeMorphism.wfst, ← f.wfst]
state_before: J : Type w
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
P Q : C
F : C ⥤ D
inst✝ : F.PreservesZeroMorphisms
X✝ Y✝ : BinaryBicone P Q
f : X✝ ⟶ Y✝
⊢ F.map f.hom ≫
      ((fun A =>
            { pt := F.obj A.pt, fst := F.map A.fst, snd := F.map A.snd, inl := F.map A.inl, inr := F.map A.inr,
              inl_fst := ⋯, inl_snd := ⋯, inr_fst := ⋯, inr_snd := ⋯ })
          Y✝).snd =
    ((fun A =>
          { pt := F.obj A.pt, fst := F.map A.fst, snd := F.map A.snd, inl := F.map A.inl, inr := F.map A.inr,
            inl_fst := ⋯, inl_snd := ⋯, inr_fst := ⋯, inr_snd := ⋯ })
        X✝).snd
state_after: no goals
tactic: simp [-BinaryBiconeMorphism.wsnd, ← f.wsnd]
state_before: J : Type w
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
P Q : C
F : C ⥤ D
inst✝ : F.PreservesZeroMorphisms
X✝ Y✝ : BinaryBicone P Q
f : X✝ ⟶ Y✝
⊢ ((fun A =>
            { pt := F.obj A.pt, fst := F.map A.fst, snd := F.map A.snd, inl := F.map A.inl, inr := F.map A.inr,
              inl_fst := ⋯, inl_snd := ⋯, inr_fst := ⋯, inr_snd := ⋯ })
          X✝).inl ≫
      F.map f.hom =
    ((fun A =>
          { pt := F.obj A.pt, fst := F.map A.fst, snd := F.map A.snd, inl := F.map A.inl, inr := F.map A.inr,
            inl_fst := ⋯, inl_snd := ⋯, inr_fst := ⋯, inr_snd := ⋯ })
        Y✝).inl
state_after: no goals
tactic: simp [-BinaryBiconeMorphism.winl, ← f.winl]
state_before: J : Type w
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
P Q : C
F : C ⥤ D
inst✝ : F.PreservesZeroMorphisms
X✝ Y✝ : BinaryBicone P Q
f : X✝ ⟶ Y✝
⊢ ((fun A =>
            { pt := F.obj A.pt, fst := F.map A.fst, snd := F.map A.snd, inl := F.map A.inl, inr := F.map A.inr,
              inl_fst := ⋯, inl_snd := ⋯, inr_fst := ⋯, inr_snd := ⋯ })
          X✝).inr ≫
      F.map f.hom =
    ((fun A =>
          { pt := F.obj A.pt, fst := F.map A.fst, snd := F.map A.snd, inl := F.map A.inl, inr := F.map A.inr,
            inl_fst := ⋯, inl_snd := ⋯, inr_fst := ⋯, inr_snd := ⋯ })
        Y✝).inr
state_after: no goals
tactic: simp [-BinaryBiconeMorphism.winr, ← f.winr]