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

full_name: CategoryTheory.ShortComplex.zero
code: /-- A short complex in a category `C` with zero morphisms is the datum
of two composable morphisms `f : X₁ ⟶ X₂` and `g : X₂ ⟶ X₃` such that
`f ≫ g = 0`. -/
structure ShortComplex [HasZeroMorphisms C] where
  /-- the first (left) object of a `ShortComplex` -/
  {X₁ : C}
  /-- the second (middle) object of a `ShortComplex` -/
  {X₂ : C}
  /-- the third (right) object of a `ShortComplex` -/
  {X₃ : C}
  /-- the first morphism of a `ShortComplex` -/
  f : X₁ ⟶ X₂
  /-- the second morphism of a `ShortComplex` -/
  g : X₂ ⟶ X₃
  /-- the composition of the two given morphisms is zero -/
  zero : f ≫ g = 0
goal: CategoryTheory.CategoryStruct.comp self.f self.g = 0

full_name: CategoryTheory.ShortComplex.f
code: /-- A short complex in a category `C` with zero morphisms is the datum
of two composable morphisms `f : X₁ ⟶ X₂` and `g : X₂ ⟶ X₃` such that
`f ≫ g = 0`. -/
structure ShortComplex [HasZeroMorphisms C] where
  /-- the first (left) object of a `ShortComplex` -/
  {X₁ : C}
  /-- the second (middle) object of a `ShortComplex` -/
  {X₂ : C}
  /-- the third (right) object of a `ShortComplex` -/
  {X₃ : C}
  /-- the first morphism of a `ShortComplex` -/
  f : X₁ ⟶ X₂
  /-- the second morphism of a `ShortComplex` -/
  g : X₂ ⟶ X₃
  /-- the composition of the two given morphisms is zero -/
  zero : f ≫ g = 0
goal: self.X₁ ⟶ self.X₂

full_name: CategoryTheory.ShortComplex
code: /-- A short complex in a category `C` with zero morphisms is the datum
of two composable morphisms `f : X₁ ⟶ X₂` and `g : X₂ ⟶ X₃` such that
`f ≫ g = 0`. -/
structure ShortComplex [HasZeroMorphisms C] where
  /-- the first (left) object of a `ShortComplex` -/
  {X₁ : C}
  /-- the second (middle) object of a `ShortComplex` -/
  {X₂ : C}
  /-- the third (right) object of a `ShortComplex` -/
  {X₃ : C}
  /-- the first morphism of a `ShortComplex` -/
  f : X₁ ⟶ X₂
  /-- the second morphism of a `ShortComplex` -/
  g : X₂ ⟶ X₃
  /-- the composition of the two given morphisms is zero -/
  zero : f ≫ g = 0
goal: Type (max u_1 u_3)

full_name: CategoryTheory.ShortComplex.X₃
code: /-- A short complex in a category `C` with zero morphisms is the datum
of two composable morphisms `f : X₁ ⟶ X₂` and `g : X₂ ⟶ X₃` such that
`f ≫ g = 0`. -/
structure ShortComplex [HasZeroMorphisms C] where
  /-- the first (left) object of a `ShortComplex` -/
  {X₁ : C}
  /-- the second (middle) object of a `ShortComplex` -/
  {X₂ : C}
  /-- the third (right) object of a `ShortComplex` -/
  {X₃ : C}
  /-- the first morphism of a `ShortComplex` -/
  f : X₁ ⟶ X₂
  /-- the second morphism of a `ShortComplex` -/
  g : X₂ ⟶ X₃
  /-- the composition of the two given morphisms is zero -/
  zero : f ≫ g = 0
goal: C

full_name: CategoryTheory.ShortComplex.X₂
code: /-- A short complex in a category `C` with zero morphisms is the datum
of two composable morphisms `f : X₁ ⟶ X₂` and `g : X₂ ⟶ X₃` such that
`f ≫ g = 0`. -/
structure ShortComplex [HasZeroMorphisms C] where
  /-- the first (left) object of a `ShortComplex` -/
  {X₁ : C}
  /-- the second (middle) object of a `ShortComplex` -/
  {X₂ : C}
  /-- the third (right) object of a `ShortComplex` -/
  {X₃ : C}
  /-- the first morphism of a `ShortComplex` -/
  f : X₁ ⟶ X₂
  /-- the second morphism of a `ShortComplex` -/
  g : X₂ ⟶ X₃
  /-- the composition of the two given morphisms is zero -/
  zero : f ≫ g = 0
goal: C

full_name: CategoryTheory.ShortComplex.g
code: /-- A short complex in a category `C` with zero morphisms is the datum
of two composable morphisms `f : X₁ ⟶ X₂` and `g : X₂ ⟶ X₃` such that
`f ≫ g = 0`. -/
structure ShortComplex [HasZeroMorphisms C] where
  /-- the first (left) object of a `ShortComplex` -/
  {X₁ : C}
  /-- the second (middle) object of a `ShortComplex` -/
  {X₂ : C}
  /-- the third (right) object of a `ShortComplex` -/
  {X₃ : C}
  /-- the first morphism of a `ShortComplex` -/
  f : X₁ ⟶ X₂
  /-- the second morphism of a `ShortComplex` -/
  g : X₂ ⟶ X₃
  /-- the composition of the two given morphisms is zero -/
  zero : f ≫ g = 0
goal: self.X₂ ⟶ self.X₃

full_name: CategoryTheory.ShortComplex.X₁
code: /-- A short complex in a category `C` with zero morphisms is the datum
of two composable morphisms `f : X₁ ⟶ X₂` and `g : X₂ ⟶ X₃` such that
`f ≫ g = 0`. -/
structure ShortComplex [HasZeroMorphisms C] where
  /-- the first (left) object of a `ShortComplex` -/
  {X₁ : C}
  /-- the second (middle) object of a `ShortComplex` -/
  {X₂ : C}
  /-- the third (right) object of a `ShortComplex` -/
  {X₃ : C}
  /-- the first morphism of a `ShortComplex` -/
  f : X₁ ⟶ X₂
  /-- the second morphism of a `ShortComplex` -/
  g : X₂ ⟶ X₃
  /-- the composition of the two given morphisms is zero -/
  zero : f ≫ g = 0
goal: C

full_name: CategoryTheory.ShortComplex.Hom
code: /-- Morphisms of short complexes are the commutative diagrams of the obvious shape. -/
@[ext]
structure Hom (S₁ S₂ : ShortComplex C) where
  /-- the morphism on the left objects -/
  τ₁ : S₁.X₁ ⟶ S₂.X₁
  /-- the morphism on the middle objects -/
  τ₂ : S₁.X₂ ⟶ S₂.X₂
  /-- the morphism on the right objects -/
  τ₃ : S₁.X₃ ⟶ S₂.X₃
  /-- the left commutative square of a morphism in `ShortComplex` -/
  comm₁₂ : τ₁ ≫ S₂.f = S₁.f ≫ τ₂ := by aesop_cat
  /-- the right commutative square of a morphism in `ShortComplex` -/
  comm₂₃ : τ₂ ≫ S₂.g = S₁.g ≫ τ₃ := by aesop_cat
goal: Type u_3

full_name: CategoryTheory.ShortComplex.Hom.comm₁₂
code: /-- Morphisms of short complexes are the commutative diagrams of the obvious shape. -/
@[ext]
structure Hom (S₁ S₂ : ShortComplex C) where
  /-- the morphism on the left objects -/
  τ₁ : S₁.X₁ ⟶ S₂.X₁
  /-- the morphism on the middle objects -/
  τ₂ : S₁.X₂ ⟶ S₂.X₂
  /-- the morphism on the right objects -/
  τ₃ : S₁.X₃ ⟶ S₂.X₃
  /-- the left commutative square of a morphism in `ShortComplex` -/
  comm₁₂ : τ₁ ≫ S₂.f = S₁.f ≫ τ₂ := by aesop_cat
  /-- the right commutative square of a morphism in `ShortComplex` -/
  comm₂₃ : τ₂ ≫ S₂.g = S₁.g ≫ τ₃ := by aesop_cat
goal: CategoryTheory.CategoryStruct.comp self.τ₁ S₂.f = CategoryTheory.CategoryStruct.comp S₁.f self.τ₂

full_name: CategoryTheory.ShortComplex.Hom.comm₂₃
code: /-- Morphisms of short complexes are the commutative diagrams of the obvious shape. -/
@[ext]
structure Hom (S₁ S₂ : ShortComplex C) where
  /-- the morphism on the left objects -/
  τ₁ : S₁.X₁ ⟶ S₂.X₁
  /-- the morphism on the middle objects -/
  τ₂ : S₁.X₂ ⟶ S₂.X₂
  /-- the morphism on the right objects -/
  τ₃ : S₁.X₃ ⟶ S₂.X₃
  /-- the left commutative square of a morphism in `ShortComplex` -/
  comm₁₂ : τ₁ ≫ S₂.f = S₁.f ≫ τ₂ := by aesop_cat
  /-- the right commutative square of a morphism in `ShortComplex` -/
  comm₂₃ : τ₂ ≫ S₂.g = S₁.g ≫ τ₃ := by aesop_cat
goal: CategoryTheory.CategoryStruct.comp self.τ₂ S₂.g = CategoryTheory.CategoryStruct.comp S₁.g self.τ₃

full_name: CategoryTheory.ShortComplex.Hom.τ₁
code: /-- Morphisms of short complexes are the commutative diagrams of the obvious shape. -/
@[ext]
structure Hom (S₁ S₂ : ShortComplex C) where
  /-- the morphism on the left objects -/
  τ₁ : S₁.X₁ ⟶ S₂.X₁
  /-- the morphism on the middle objects -/
  τ₂ : S₁.X₂ ⟶ S₂.X₂
  /-- the morphism on the right objects -/
  τ₃ : S₁.X₃ ⟶ S₂.X₃
  /-- the left commutative square of a morphism in `ShortComplex` -/
  comm₁₂ : τ₁ ≫ S₂.f = S₁.f ≫ τ₂ := by aesop_cat
  /-- the right commutative square of a morphism in `ShortComplex` -/
  comm₂₃ : τ₂ ≫ S₂.g = S₁.g ≫ τ₃ := by aesop_cat
goal: S₁.X₁ ⟶ S₂.X₁

full_name: CategoryTheory.ShortComplex.Hom.τ₃
code: /-- Morphisms of short complexes are the commutative diagrams of the obvious shape. -/
@[ext]
structure Hom (S₁ S₂ : ShortComplex C) where
  /-- the morphism on the left objects -/
  τ₁ : S₁.X₁ ⟶ S₂.X₁
  /-- the morphism on the middle objects -/
  τ₂ : S₁.X₂ ⟶ S₂.X₂
  /-- the morphism on the right objects -/
  τ₃ : S₁.X₃ ⟶ S₂.X₃
  /-- the left commutative square of a morphism in `ShortComplex` -/
  comm₁₂ : τ₁ ≫ S₂.f = S₁.f ≫ τ₂ := by aesop_cat
  /-- the right commutative square of a morphism in `ShortComplex` -/
  comm₂₃ : τ₂ ≫ S₂.g = S₁.g ≫ τ₃ := by aesop_cat
goal: S₁.X₃ ⟶ S₂.X₃

full_name: CategoryTheory.ShortComplex.Hom.τ₂
code: /-- Morphisms of short complexes are the commutative diagrams of the obvious shape. -/
@[ext]
structure Hom (S₁ S₂ : ShortComplex C) where
  /-- the morphism on the left objects -/
  τ₁ : S₁.X₁ ⟶ S₂.X₁
  /-- the morphism on the middle objects -/
  τ₂ : S₁.X₂ ⟶ S₂.X₂
  /-- the morphism on the right objects -/
  τ₃ : S₁.X₃ ⟶ S₂.X₃
  /-- the left commutative square of a morphism in `ShortComplex` -/
  comm₁₂ : τ₁ ≫ S₂.f = S₁.f ≫ τ₂ := by aesop_cat
  /-- the right commutative square of a morphism in `ShortComplex` -/
  comm₂₃ : τ₂ ≫ S₂.g = S₁.g ≫ τ₃ := by aesop_cat
goal: S₁.X₂ ⟶ S₂.X₂

full_name: CategoryTheory.ShortComplex.Hom.id
code: /-- The identity morphism of a short complex. -/
@[simps]
def Hom.id : Hom S S 
goal: S.Hom S

full_name: CategoryTheory.ShortComplex.Hom.id_τ₃
code: /-- The identity morphism of a short complex. -/
@[simps]
def Hom.id : Hom S S 
goal: (CategoryTheory.ShortComplex.Hom.id S).τ₃ = CategoryTheory.CategoryStruct.id S.X₃

full_name: CategoryTheory.ShortComplex.Hom.id_τ₂
code: /-- The identity morphism of a short complex. -/
@[simps]
def Hom.id : Hom S S 
goal: (CategoryTheory.ShortComplex.Hom.id S).τ₂ = CategoryTheory.CategoryStruct.id S.X₂

full_name: CategoryTheory.ShortComplex.Hom.id_τ₁
code: /-- The identity morphism of a short complex. -/
@[simps]
def Hom.id : Hom S S 
goal: (CategoryTheory.ShortComplex.Hom.id S).τ₁ = CategoryTheory.CategoryStruct.id S.X₁

full_name: CategoryTheory.ShortComplex.Hom.comp
code: /-- The composition of morphisms of short complexes. -/
@[simps]
def Hom.comp (φ₁₂ : Hom S₁ S₂) (φ₂₃ : Hom S₂ S₃) : Hom S₁ S₃ 
goal: S₁.Hom S₃

full_name: CategoryTheory.ShortComplex.Hom.comp_τ₃
code: /-- The composition of morphisms of short complexes. -/
@[simps]
def Hom.comp (φ₁₂ : Hom S₁ S₂) (φ₂₃ : Hom S₂ S₃) : Hom S₁ S₃ 
goal: (φ₁₂.comp φ₂₃).τ₃ = CategoryTheory.CategoryStruct.comp φ₁₂.τ₃ φ₂₃.τ₃

full_name: CategoryTheory.ShortComplex.Hom.comp_τ₁
code: /-- The composition of morphisms of short complexes. -/
@[simps]
def Hom.comp (φ₁₂ : Hom S₁ S₂) (φ₂₃ : Hom S₂ S₃) : Hom S₁ S₃ 
goal: (φ₁₂.comp φ₂₃).τ₁ = CategoryTheory.CategoryStruct.comp φ₁₂.τ₁ φ₂₃.τ₁

full_name: CategoryTheory.ShortComplex.Hom.comp_τ₂
code: /-- The composition of morphisms of short complexes. -/
@[simps]
def Hom.comp (φ₁₂ : Hom S₁ S₂) (φ₂₃ : Hom S₂ S₃) : Hom S₁ S₃ 
goal: (φ₁₂.comp φ₂₃).τ₂ = CategoryTheory.CategoryStruct.comp φ₁₂.τ₂ φ₂₃.τ₂

full_name: CategoryTheory.ShortComplex.instCategory
code: instance : Category (ShortComplex C) 
goal: CategoryTheory.Category.{u_3, max u_3 u_1} (CategoryTheory.ShortComplex C)

full_name: CategoryTheory.ShortComplex.hom_ext
code: @[ext]
lemma hom_ext (f g : S₁ ⟶ S₂) (h₁ : f.τ₁ = g.τ₁) (h₂ : f.τ₂ = g.τ₂) (h₃ : f.τ₃ = g.τ₃) : f = g 
goal: f = g

full_name: CategoryTheory.ShortComplex.homMk_τ₂
code: /-- A constructor for morphisms in `ShortComplex C` when the commutativity conditions
are not obvious. -/
@[simps]
def homMk {S₁ S₂ : ShortComplex C} (τ₁ : S₁.X₁ ⟶ S₂.X₁) (τ₂ : S₁.X₂ ⟶ S₂.X₂)
    (τ₃ : S₁.X₃ ⟶ S₂.X₃) (comm₁₂ : τ₁ ≫ S₂.f = S₁.f ≫ τ₂)
    (comm₂₃ : τ₂ ≫ S₂.g = S₁.g ≫ τ₃) : S₁ ⟶ S₂ 
goal: (CategoryTheory.ShortComplex.homMk τ₁ τ₂ τ₃ comm₁₂ comm₂₃).τ₂ = τ₂

full_name: CategoryTheory.ShortComplex.homMk_τ₃
code: /-- A constructor for morphisms in `ShortComplex C` when the commutativity conditions
are not obvious. -/
@[simps]
def homMk {S₁ S₂ : ShortComplex C} (τ₁ : S₁.X₁ ⟶ S₂.X₁) (τ₂ : S₁.X₂ ⟶ S₂.X₂)
    (τ₃ : S₁.X₃ ⟶ S₂.X₃) (comm₁₂ : τ₁ ≫ S₂.f = S₁.f ≫ τ₂)
    (comm₂₃ : τ₂ ≫ S₂.g = S₁.g ≫ τ₃) : S₁ ⟶ S₂ 
goal: (CategoryTheory.ShortComplex.homMk τ₁ τ₂ τ₃ comm₁₂ comm₂₃).τ₃ = τ₃

full_name: CategoryTheory.ShortComplex.homMk
code: /-- A constructor for morphisms in `ShortComplex C` when the commutativity conditions
are not obvious. -/
@[simps]
def homMk {S₁ S₂ : ShortComplex C} (τ₁ : S₁.X₁ ⟶ S₂.X₁) (τ₂ : S₁.X₂ ⟶ S₂.X₂)
    (τ₃ : S₁.X₃ ⟶ S₂.X₃) (comm₁₂ : τ₁ ≫ S₂.f = S₁.f ≫ τ₂)
    (comm₂₃ : τ₂ ≫ S₂.g = S₁.g ≫ τ₃) : S₁ ⟶ S₂ 
goal: S₁ ⟶ S₂

full_name: CategoryTheory.ShortComplex.homMk_τ₁
code: /-- A constructor for morphisms in `ShortComplex C` when the commutativity conditions
are not obvious. -/
@[simps]
def homMk {S₁ S₂ : ShortComplex C} (τ₁ : S₁.X₁ ⟶ S₂.X₁) (τ₂ : S₁.X₂ ⟶ S₂.X₂)
    (τ₃ : S₁.X₃ ⟶ S₂.X₃) (comm₁₂ : τ₁ ≫ S₂.f = S₁.f ≫ τ₂)
    (comm₂₃ : τ₂ ≫ S₂.g = S₁.g ≫ τ₃) : S₁ ⟶ S₂ 
goal: (CategoryTheory.ShortComplex.homMk τ₁ τ₂ τ₃ comm₁₂ comm₂₃).τ₁ = τ₁

full_name: CategoryTheory.ShortComplex.id_τ₁
code: @[simp] lemma id_τ₁ : Hom.τ₁ (𝟙 S) = 𝟙 _ 
goal: (CategoryTheory.CategoryStruct.id S).τ₁ = CategoryTheory.CategoryStruct.id S.X₁

full_name: CategoryTheory.ShortComplex.id_τ₂
code: @[simp] lemma id_τ₂ : Hom.τ₂ (𝟙 S) = 𝟙 _ 
goal: (CategoryTheory.CategoryStruct.id S).τ₂ = CategoryTheory.CategoryStruct.id S.X₂

full_name: CategoryTheory.ShortComplex.id_τ₃
code: @[simp] lemma id_τ₃ : Hom.τ₃ (𝟙 S) = 𝟙 _ 
goal: (CategoryTheory.CategoryStruct.id S).τ₃ = CategoryTheory.CategoryStruct.id S.X₃

full_name: CategoryTheory.ShortComplex.comp_τ₁
code: @[reassoc] lemma comp_τ₁ (φ₁₂ : S₁ ⟶ S₂) (φ₂₃ : S₂ ⟶ S₃) :
    (φ₁₂ ≫ φ₂₃).τ₁ = φ₁₂.τ₁ ≫ φ₂₃.τ₁ 
goal: (CategoryTheory.CategoryStruct.comp φ₁₂ φ₂₃).τ₁ = CategoryTheory.CategoryStruct.comp φ₁₂.τ₁ φ₂₃.τ₁

full_name: CategoryTheory.ShortComplex.comp_τ₂
code: @[reassoc] lemma comp_τ₂ (φ₁₂ : S₁ ⟶ S₂) (φ₂₃ : S₂ ⟶ S₃) :
    (φ₁₂ ≫ φ₂₃).τ₂ = φ₁₂.τ₂ ≫ φ₂₃.τ₂ 
goal: (CategoryTheory.CategoryStruct.comp φ₁₂ φ₂₃).τ₂ = CategoryTheory.CategoryStruct.comp φ₁₂.τ₂ φ₂₃.τ₂

full_name: CategoryTheory.ShortComplex.comp_τ₃
code: @[reassoc] lemma comp_τ₃ (φ₁₂ : S₁ ⟶ S₂) (φ₂₃ : S₂ ⟶ S₃) :
    (φ₁₂ ≫ φ₂₃).τ₃ = φ₁₂.τ₃ ≫ φ₂₃.τ₃ 
goal: (CategoryTheory.CategoryStruct.comp φ₁₂ φ₂₃).τ₃ = CategoryTheory.CategoryStruct.comp φ₁₂.τ₃ φ₂₃.τ₃

full_name: CategoryTheory.ShortComplex.instZeroHom
code: instance : Zero (S₁ ⟶ S₂) 
goal: Zero (S₁ ⟶ S₂)

full_name: CategoryTheory.ShortComplex.zero_τ₁
code: @[simp] lemma zero_τ₁ : Hom.τ₁ (0 : S₁ ⟶ S₂) = 0 
goal: CategoryTheory.ShortComplex.Hom.τ₁ 0 = 0

full_name: CategoryTheory.ShortComplex.zero_τ₂
code: @[simp] lemma zero_τ₂ : Hom.τ₂ (0 : S₁ ⟶ S₂) = 0 
goal: CategoryTheory.ShortComplex.Hom.τ₂ 0 = 0

full_name: CategoryTheory.ShortComplex.zero_τ₃
code: @[simp] lemma zero_τ₃ : Hom.τ₃ (0 : S₁ ⟶ S₂) = 0 
goal: CategoryTheory.ShortComplex.Hom.τ₃ 0 = 0

full_name: CategoryTheory.ShortComplex.instHasZeroMorphisms
code: instance : HasZeroMorphisms (ShortComplex C) 
goal: CategoryTheory.Limits.HasZeroMorphisms (CategoryTheory.ShortComplex C)

full_name: CategoryTheory.ShortComplex.π₁
code: /-- The first projection functor `ShortComplex C ⥤ C`. -/
@[simps]
def π₁ : ShortComplex C ⥤ C 
goal: CategoryTheory.Functor (CategoryTheory.ShortComplex C) C

full_name: CategoryTheory.ShortComplex.π₁_obj
code: /-- The first projection functor `ShortComplex C ⥤ C`. -/
@[simps]
def π₁ : ShortComplex C ⥤ C 
goal: CategoryTheory.ShortComplex.π₁.obj S = S.X₁

full_name: CategoryTheory.ShortComplex.π₁_map
code: /-- The first projection functor `ShortComplex C ⥤ C`. -/
@[simps]
def π₁ : ShortComplex C ⥤ C 
goal: ∀ {X Y : CategoryTheory.ShortComplex C} (f : X ⟶ Y), CategoryTheory.ShortComplex.π₁.map f = f.τ₁

full_name: CategoryTheory.ShortComplex.π₂
code: /-- The second projection functor `ShortComplex C ⥤ C`. -/
@[simps]
def π₂ : ShortComplex C ⥤ C 
goal: CategoryTheory.Functor (CategoryTheory.ShortComplex C) C

full_name: CategoryTheory.ShortComplex.π₂_map
code: /-- The second projection functor `ShortComplex C ⥤ C`. -/
@[simps]
def π₂ : ShortComplex C ⥤ C 
goal: ∀ {X Y : CategoryTheory.ShortComplex C} (f : X ⟶ Y), CategoryTheory.ShortComplex.π₂.map f = f.τ₂

full_name: CategoryTheory.ShortComplex.π₂_obj
code: /-- The second projection functor `ShortComplex C ⥤ C`. -/
@[simps]
def π₂ : ShortComplex C ⥤ C 
goal: CategoryTheory.ShortComplex.π₂.obj S = S.X₂

full_name: CategoryTheory.ShortComplex.π₃
code: /-- The third projection functor `ShortComplex C ⥤ C`. -/
@[simps]
def π₃ : ShortComplex C ⥤ C 
goal: CategoryTheory.Functor (CategoryTheory.ShortComplex C) C

full_name: CategoryTheory.ShortComplex.π₃_obj
code: /-- The third projection functor `ShortComplex C ⥤ C`. -/
@[simps]
def π₃ : ShortComplex C ⥤ C 
goal: CategoryTheory.ShortComplex.π₃.obj S = S.X₃

full_name: CategoryTheory.ShortComplex.π₃_map
code: /-- The third projection functor `ShortComplex C ⥤ C`. -/
@[simps]
def π₃ : ShortComplex C ⥤ C 
goal: ∀ {X Y : CategoryTheory.ShortComplex C} (f : X ⟶ Y), CategoryTheory.ShortComplex.π₃.map f = f.τ₃

full_name: CategoryTheory.ShortComplex.preservesZeroMorphisms_π₁
code: instance preservesZeroMorphisms_π₁ : Functor.PreservesZeroMorphisms (π₁ : _ ⥤ C) 
goal: CategoryTheory.ShortComplex.π₁.PreservesZeroMorphisms

full_name: CategoryTheory.ShortComplex.preservesZeroMorphisms_π₂
code: instance preservesZeroMorphisms_π₂ : Functor.PreservesZeroMorphisms (π₂ : _ ⥤ C) 
goal: CategoryTheory.ShortComplex.π₂.PreservesZeroMorphisms

full_name: CategoryTheory.ShortComplex.preservesZeroMorphisms_π₃
code: instance preservesZeroMorphisms_π₃ : Functor.PreservesZeroMorphisms (π₃ : _ ⥤ C) 
goal: CategoryTheory.ShortComplex.π₃.PreservesZeroMorphisms

full_name: CategoryTheory.ShortComplex.instIsIsoτ₁
code: instance (f : S₁ ⟶ S₂) [IsIso f] : IsIso f.τ₁ 
goal: CategoryTheory.IsIso f.τ₁

full_name: CategoryTheory.ShortComplex.instIsIsoτ₂
code: instance (f : S₁ ⟶ S₂) [IsIso f] : IsIso f.τ₂ 
goal: CategoryTheory.IsIso f.τ₂

full_name: CategoryTheory.ShortComplex.instIsIsoτ₃
code: instance (f : S₁ ⟶ S₂) [IsIso f] : IsIso f.τ₃ 
goal: CategoryTheory.IsIso f.τ₃

full_name: CategoryTheory.ShortComplex.π₁Toπ₂_app
code: /-- The natural transformation `π₁ ⟶ π₂` induced by `S.f` for all `S : ShortComplex C`. -/
@[simps] def π₁Toπ₂ : (π₁ : _ ⥤ C) ⟶ π₂ 
goal: CategoryTheory.ShortComplex.π₁Toπ₂.app S = S.f

full_name: CategoryTheory.ShortComplex.π₁Toπ₂
code: /-- The natural transformation `π₁ ⟶ π₂` induced by `S.f` for all `S : ShortComplex C`. -/
@[simps] def π₁Toπ₂ : (π₁ : _ ⥤ C) ⟶ π₂ 
goal: CategoryTheory.ShortComplex.π₁ ⟶ CategoryTheory.ShortComplex.π₂

full_name: CategoryTheory.ShortComplex.π₂Toπ₃_app
code: /-- The natural transformation `π₂ ⟶ π₃` induced by `S.g` for all `S : ShortComplex C`. -/
@[simps] def π₂Toπ₃ : (π₂ : _ ⥤ C) ⟶ π₃ 
goal: CategoryTheory.ShortComplex.π₂Toπ₃.app S = S.g

full_name: CategoryTheory.ShortComplex.π₂Toπ₃
code: /-- The natural transformation `π₂ ⟶ π₃` induced by `S.g` for all `S : ShortComplex C`. -/
@[simps] def π₂Toπ₃ : (π₂ : _ ⥤ C) ⟶ π₃ 
goal: CategoryTheory.ShortComplex.π₂ ⟶ CategoryTheory.ShortComplex.π₃

full_name: CategoryTheory.ShortComplex.π₁Toπ₂_comp_π₂Toπ₃
code: @[reassoc (attr := simp)]
lemma π₁Toπ₂_comp_π₂Toπ₃ : (π₁Toπ₂ : (_ : _ ⥤ C) ⟶ _) ≫ π₂Toπ₃ = 0 
goal: CategoryTheory.CategoryStruct.comp CategoryTheory.ShortComplex.π₁Toπ₂ CategoryTheory.ShortComplex.π₂Toπ₃ = 0

full_name: CategoryTheory.ShortComplex.map_g
code: /-- The short complex in `D` obtained by applying a functor `F : C ⥤ D` to a
short complex in `C`, assuming that `F` preserves zero morphisms. -/
@[simps]
def map (F : C ⥤ D) [F.PreservesZeroMorphisms] : ShortComplex D 
goal: (S.map F).g = F.map S.g

full_name: CategoryTheory.ShortComplex.map
code: /-- The short complex in `D` obtained by applying a functor `F : C ⥤ D` to a
short complex in `C`, assuming that `F` preserves zero morphisms. -/
@[simps]
def map (F : C ⥤ D) [F.PreservesZeroMorphisms] : ShortComplex D 
goal: CategoryTheory.ShortComplex D

full_name: CategoryTheory.ShortComplex.map_X₂
code: /-- The short complex in `D` obtained by applying a functor `F : C ⥤ D` to a
short complex in `C`, assuming that `F` preserves zero morphisms. -/
@[simps]
def map (F : C ⥤ D) [F.PreservesZeroMorphisms] : ShortComplex D 
goal: (S.map F).X₂ = F.obj S.X₂

full_name: CategoryTheory.ShortComplex.map_X₃
code: /-- The short complex in `D` obtained by applying a functor `F : C ⥤ D` to a
short complex in `C`, assuming that `F` preserves zero morphisms. -/
@[simps]
def map (F : C ⥤ D) [F.PreservesZeroMorphisms] : ShortComplex D 
goal: (S.map F).X₃ = F.obj S.X₃

full_name: CategoryTheory.ShortComplex.map_f
code: /-- The short complex in `D` obtained by applying a functor `F : C ⥤ D` to a
short complex in `C`, assuming that `F` preserves zero morphisms. -/
@[simps]
def map (F : C ⥤ D) [F.PreservesZeroMorphisms] : ShortComplex D 
goal: (S.map F).f = F.map S.f

full_name: CategoryTheory.ShortComplex.map_X₁
code: /-- The short complex in `D` obtained by applying a functor `F : C ⥤ D` to a
short complex in `C`, assuming that `F` preserves zero morphisms. -/
@[simps]
def map (F : C ⥤ D) [F.PreservesZeroMorphisms] : ShortComplex D 
goal: (S.map F).X₁ = F.obj S.X₁

full_name: CategoryTheory.ShortComplex.mapNatTrans_τ₂
code: /-- The morphism of short complexes `S.map F ⟶ S.map G` induced by
a natural transformation `F ⟶ G`. -/
@[simps]
def mapNatTrans {F G : C ⥤ D} [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] (τ : F ⟶ G) :
    S.map F ⟶ S.map G 
goal: (S.mapNatTrans τ).τ₂ = τ.app S.X₂

full_name: CategoryTheory.ShortComplex.mapNatTrans_τ₁
code: /-- The morphism of short complexes `S.map F ⟶ S.map G` induced by
a natural transformation `F ⟶ G`. -/
@[simps]
def mapNatTrans {F G : C ⥤ D} [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] (τ : F ⟶ G) :
    S.map F ⟶ S.map G 
goal: (S.mapNatTrans τ).τ₁ = τ.app S.X₁

full_name: CategoryTheory.ShortComplex.mapNatTrans_τ₃
code: /-- The morphism of short complexes `S.map F ⟶ S.map G` induced by
a natural transformation `F ⟶ G`. -/
@[simps]
def mapNatTrans {F G : C ⥤ D} [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] (τ : F ⟶ G) :
    S.map F ⟶ S.map G 
goal: (S.mapNatTrans τ).τ₃ = τ.app S.X₃

full_name: CategoryTheory.ShortComplex.mapNatTrans
code: /-- The morphism of short complexes `S.map F ⟶ S.map G` induced by
a natural transformation `F ⟶ G`. -/
@[simps]
def mapNatTrans {F G : C ⥤ D} [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] (τ : F ⟶ G) :
    S.map F ⟶ S.map G 
goal: S.map F ⟶ S.map G

full_name: CategoryTheory.ShortComplex.mapNatIso_inv
code: /-- The isomorphism of short complexes `S.map F ≅ S.map G` induced by
a natural isomorphism `F ≅ G`. -/
@[simps]
def mapNatIso {F G : C ⥤ D} [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] (τ : F ≅ G) :
    S.map F ≅ S.map G 
goal: (S.mapNatIso τ).inv = S.mapNatTrans τ.inv

full_name: CategoryTheory.ShortComplex.mapNatIso
code: /-- The isomorphism of short complexes `S.map F ≅ S.map G` induced by
a natural isomorphism `F ≅ G`. -/
@[simps]
def mapNatIso {F G : C ⥤ D} [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] (τ : F ≅ G) :
    S.map F ≅ S.map G 
goal: S.map F ≅ S.map G

full_name: CategoryTheory.ShortComplex.mapNatIso_hom
code: /-- The isomorphism of short complexes `S.map F ≅ S.map G` induced by
a natural isomorphism `F ≅ G`. -/
@[simps]
def mapNatIso {F G : C ⥤ D} [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] (τ : F ≅ G) :
    S.map F ≅ S.map G 
goal: (S.mapNatIso τ).hom = S.mapNatTrans τ.hom

full_name: CategoryTheory.Functor.mapShortComplex_obj
code: /-- The functor `ShortComplex C ⥤ ShortComplex D` induced by a functor `C ⥤ D` which
preserves zero morphisms. -/
@[simps]
def _root_.CategoryTheory.Functor.mapShortComplex (F : C ⥤ D) [F.PreservesZeroMorphisms] :
    ShortComplex C ⥤ ShortComplex D 
goal: F.mapShortComplex.obj S = S.map F

full_name: CategoryTheory.Functor.mapShortComplex_map_τ₂
code: /-- The functor `ShortComplex C ⥤ ShortComplex D` induced by a functor `C ⥤ D` which
preserves zero morphisms. -/
@[simps]
def _root_.CategoryTheory.Functor.mapShortComplex (F : C ⥤ D) [F.PreservesZeroMorphisms] :
    ShortComplex C ⥤ ShortComplex D 
goal: ∀ {X Y : CategoryTheory.ShortComplex C} (φ : X ⟶ Y), (F.mapShortComplex.map φ).τ₂ = F.map φ.τ₂

full_name: CategoryTheory.Functor.mapShortComplex
code: /-- The functor `ShortComplex C ⥤ ShortComplex D` induced by a functor `C ⥤ D` which
preserves zero morphisms. -/
@[simps]
def _root_.CategoryTheory.Functor.mapShortComplex (F : C ⥤ D) [F.PreservesZeroMorphisms] :
    ShortComplex C ⥤ ShortComplex D 
goal: CategoryTheory.Functor (CategoryTheory.ShortComplex C) (CategoryTheory.ShortComplex D)

full_name: CategoryTheory.Functor.mapShortComplex_map_τ₃
code: /-- The functor `ShortComplex C ⥤ ShortComplex D` induced by a functor `C ⥤ D` which
preserves zero morphisms. -/
@[simps]
def _root_.CategoryTheory.Functor.mapShortComplex (F : C ⥤ D) [F.PreservesZeroMorphisms] :
    ShortComplex C ⥤ ShortComplex D 
goal: ∀ {X Y : CategoryTheory.ShortComplex C} (φ : X ⟶ Y), (F.mapShortComplex.map φ).τ₃ = F.map φ.τ₃

full_name: CategoryTheory.Functor.mapShortComplex_map_τ₁
code: /-- The functor `ShortComplex C ⥤ ShortComplex D` induced by a functor `C ⥤ D` which
preserves zero morphisms. -/
@[simps]
def _root_.CategoryTheory.Functor.mapShortComplex (F : C ⥤ D) [F.PreservesZeroMorphisms] :
    ShortComplex C ⥤ ShortComplex D 
goal: ∀ {X Y : CategoryTheory.ShortComplex C} (φ : X ⟶ Y), (F.mapShortComplex.map φ).τ₁ = F.map φ.τ₁

full_name: CategoryTheory.ShortComplex.isoMk_hom_τ₃
code: /-- A constructor for isomorphisms in the category `ShortComplex C`-/
@[simps]
def isoMk (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃)
    (comm₁₂ : e₁.hom ≫ S₂.f = S₁.f ≫ e₂.hom := by aesop_cat)
    (comm₂₃ : e₂.hom ≫ S₂.g = S₁.g ≫ e₃.hom := by aesop_cat) :
    S₁ ≅ S₂ 
goal: (CategoryTheory.ShortComplex.isoMk e₁ e₂ e₃ comm₁₂ comm₂₃).hom.τ₃ = e₃.hom

full_name: CategoryTheory.ShortComplex.isoMk_hom_τ₂
code: /-- A constructor for isomorphisms in the category `ShortComplex C`-/
@[simps]
def isoMk (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃)
    (comm₁₂ : e₁.hom ≫ S₂.f = S₁.f ≫ e₂.hom := by aesop_cat)
    (comm₂₃ : e₂.hom ≫ S₂.g = S₁.g ≫ e₃.hom := by aesop_cat) :
    S₁ ≅ S₂ 
goal: (CategoryTheory.ShortComplex.isoMk e₁ e₂ e₃ comm₁₂ comm₂₃).hom.τ₂ = e₂.hom

full_name: CategoryTheory.ShortComplex.isoMk
code: /-- A constructor for isomorphisms in the category `ShortComplex C`-/
@[simps]
def isoMk (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃)
    (comm₁₂ : e₁.hom ≫ S₂.f = S₁.f ≫ e₂.hom := by aesop_cat)
    (comm₂₃ : e₂.hom ≫ S₂.g = S₁.g ≫ e₃.hom := by aesop_cat) :
    S₁ ≅ S₂ 
goal: S₁ ≅ S₂

full_name: CategoryTheory.ShortComplex.isoMk_inv
code: /-- A constructor for isomorphisms in the category `ShortComplex C`-/
@[simps]
def isoMk (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃)
    (comm₁₂ : e₁.hom ≫ S₂.f = S₁.f ≫ e₂.hom := by aesop_cat)
    (comm₂₃ : e₂.hom ≫ S₂.g = S₁.g ≫ e₃.hom := by aesop_cat) :
    S₁ ≅ S₂ 
goal: (CategoryTheory.ShortComplex.isoMk e₁ e₂ e₃ comm₁₂ comm₂₃).inv =
  CategoryTheory.ShortComplex.homMk e₁.inv e₂.inv e₃.inv ⋯ ⋯

full_name: CategoryTheory.ShortComplex.isoMk_hom_τ₁
code: /-- A constructor for isomorphisms in the category `ShortComplex C`-/
@[simps]
def isoMk (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃)
    (comm₁₂ : e₁.hom ≫ S₂.f = S₁.f ≫ e₂.hom := by aesop_cat)
    (comm₂₃ : e₂.hom ≫ S₂.g = S₁.g ≫ e₃.hom := by aesop_cat) :
    S₁ ≅ S₂ 
goal: (CategoryTheory.ShortComplex.isoMk e₁ e₂ e₃ comm₁₂ comm₂₃).hom.τ₁ = e₁.hom

full_name: CategoryTheory.ShortComplex.isIso_of_isIso
code: lemma isIso_of_isIso (f : S₁ ⟶ S₂) [IsIso f.τ₁] [IsIso f.τ₂] [IsIso f.τ₃] : IsIso f 
goal: CategoryTheory.IsIso f

full_name: CategoryTheory.ShortComplex.op_X₁
code: /-- The opposite `ShortComplex` in `Cᵒᵖ` associated to a short complex in `C`. -/
@[simps]
def op : ShortComplex Cᵒᵖ 
goal: S.op.X₁ = Opposite.op S.X₃

full_name: CategoryTheory.ShortComplex.op_g
code: /-- The opposite `ShortComplex` in `Cᵒᵖ` associated to a short complex in `C`. -/
@[simps]
def op : ShortComplex Cᵒᵖ 
goal: S.op.g = S.f.op

full_name: CategoryTheory.ShortComplex.op_f
code: /-- The opposite `ShortComplex` in `Cᵒᵖ` associated to a short complex in `C`. -/
@[simps]
def op : ShortComplex Cᵒᵖ 
goal: S.op.f = S.g.op

full_name: CategoryTheory.ShortComplex.op
code: /-- The opposite `ShortComplex` in `Cᵒᵖ` associated to a short complex in `C`. -/
@[simps]
def op : ShortComplex Cᵒᵖ 
goal: CategoryTheory.ShortComplex Cᵒᵖ

full_name: CategoryTheory.ShortComplex.op_X₂
code: /-- The opposite `ShortComplex` in `Cᵒᵖ` associated to a short complex in `C`. -/
@[simps]
def op : ShortComplex Cᵒᵖ 
goal: S.op.X₂ = Opposite.op S.X₂

full_name: CategoryTheory.ShortComplex.op_X₃
code: /-- The opposite `ShortComplex` in `Cᵒᵖ` associated to a short complex in `C`. -/
@[simps]
def op : ShortComplex Cᵒᵖ 
goal: S.op.X₃ = Opposite.op S.X₁

full_name: CategoryTheory.ShortComplex.opMap_τ₂
code: /-- The opposite morphism in `ShortComplex Cᵒᵖ` associated to a morphism in `ShortComplex C` -/
@[simps]
def opMap (φ : S₁ ⟶ S₂) : S₂.op ⟶ S₁.op 
goal: (CategoryTheory.ShortComplex.opMap φ).τ₂ = φ.τ₂.op

full_name: CategoryTheory.ShortComplex.opMap_τ₁
code: /-- The opposite morphism in `ShortComplex Cᵒᵖ` associated to a morphism in `ShortComplex C` -/
@[simps]
def opMap (φ : S₁ ⟶ S₂) : S₂.op ⟶ S₁.op 
goal: (CategoryTheory.ShortComplex.opMap φ).τ₁ = φ.τ₃.op

full_name: CategoryTheory.ShortComplex.opMap_τ₃
code: /-- The opposite morphism in `ShortComplex Cᵒᵖ` associated to a morphism in `ShortComplex C` -/
@[simps]
def opMap (φ : S₁ ⟶ S₂) : S₂.op ⟶ S₁.op 
goal: (CategoryTheory.ShortComplex.opMap φ).τ₃ = φ.τ₁.op

full_name: CategoryTheory.ShortComplex.opMap
code: /-- The opposite morphism in `ShortComplex Cᵒᵖ` associated to a morphism in `ShortComplex C` -/
@[simps]
def opMap (φ : S₁ ⟶ S₂) : S₂.op ⟶ S₁.op 
goal: S₂.op ⟶ S₁.op

full_name: CategoryTheory.ShortComplex.opMap_id
code: @[simp]
lemma opMap_id : opMap (𝟙 S) = 𝟙 S.op 
goal: CategoryTheory.ShortComplex.opMap (CategoryTheory.CategoryStruct.id S) = CategoryTheory.CategoryStruct.id S.op

full_name: CategoryTheory.ShortComplex.unop_X₁
code: /-- The `ShortComplex` in `C` associated to a short complex in `Cᵒᵖ`. -/
@[simps]
def unop (S : ShortComplex Cᵒᵖ) : ShortComplex C 
goal: S.unop.X₁ = Opposite.unop S.X₃

full_name: CategoryTheory.ShortComplex.unop_X₂
code: /-- The `ShortComplex` in `C` associated to a short complex in `Cᵒᵖ`. -/
@[simps]
def unop (S : ShortComplex Cᵒᵖ) : ShortComplex C 
goal: S.unop.X₂ = Opposite.unop S.X₂

full_name: CategoryTheory.ShortComplex.unop_f
code: /-- The `ShortComplex` in `C` associated to a short complex in `Cᵒᵖ`. -/
@[simps]
def unop (S : ShortComplex Cᵒᵖ) : ShortComplex C 
goal: S.unop.f = S.g.unop

full_name: CategoryTheory.ShortComplex.unop
code: /-- The `ShortComplex` in `C` associated to a short complex in `Cᵒᵖ`. -/
@[simps]
def unop (S : ShortComplex Cᵒᵖ) : ShortComplex C 
goal: CategoryTheory.ShortComplex C

full_name: CategoryTheory.ShortComplex.unop_X₃
code: /-- The `ShortComplex` in `C` associated to a short complex in `Cᵒᵖ`. -/
@[simps]
def unop (S : ShortComplex Cᵒᵖ) : ShortComplex C 
goal: S.unop.X₃ = Opposite.unop S.X₁

full_name: CategoryTheory.ShortComplex.unop_g
code: /-- The `ShortComplex` in `C` associated to a short complex in `Cᵒᵖ`. -/
@[simps]
def unop (S : ShortComplex Cᵒᵖ) : ShortComplex C 
goal: S.unop.g = S.f.unop

full_name: CategoryTheory.ShortComplex.unopMap_τ₃
code: /-- The morphism in `ShortComplex C` associated to a morphism in `ShortComplex Cᵒᵖ` -/
@[simps]
def unopMap {S₁ S₂ : ShortComplex Cᵒᵖ} (φ : S₁ ⟶ S₂) : S₂.unop ⟶ S₁.unop 
goal: (CategoryTheory.ShortComplex.unopMap φ).τ₃ = φ.τ₁.unop

full_name: CategoryTheory.ShortComplex.unopMap_τ₁
code: /-- The morphism in `ShortComplex C` associated to a morphism in `ShortComplex Cᵒᵖ` -/
@[simps]
def unopMap {S₁ S₂ : ShortComplex Cᵒᵖ} (φ : S₁ ⟶ S₂) : S₂.unop ⟶ S₁.unop 
goal: (CategoryTheory.ShortComplex.unopMap φ).τ₁ = φ.τ₃.unop

full_name: CategoryTheory.ShortComplex.unopMap
code: /-- The morphism in `ShortComplex C` associated to a morphism in `ShortComplex Cᵒᵖ` -/
@[simps]
def unopMap {S₁ S₂ : ShortComplex Cᵒᵖ} (φ : S₁ ⟶ S₂) : S₂.unop ⟶ S₁.unop 
goal: S₂.unop ⟶ S₁.unop

full_name: CategoryTheory.ShortComplex.unopMap_τ₂
code: /-- The morphism in `ShortComplex C` associated to a morphism in `ShortComplex Cᵒᵖ` -/
@[simps]
def unopMap {S₁ S₂ : ShortComplex Cᵒᵖ} (φ : S₁ ⟶ S₂) : S₂.unop ⟶ S₁.unop 
goal: (CategoryTheory.ShortComplex.unopMap φ).τ₂ = φ.τ₂.unop

full_name: CategoryTheory.ShortComplex.unopMap_id
code: @[simp]
lemma unopMap_id (S : ShortComplex Cᵒᵖ) : unopMap (𝟙 S) = 𝟙 S.unop 
goal: CategoryTheory.ShortComplex.unopMap (CategoryTheory.CategoryStruct.id S) = CategoryTheory.CategoryStruct.id S.unop

full_name: CategoryTheory.ShortComplex.opFunctor_map
code: /-- The obvious functor `(ShortComplex C)ᵒᵖ ⥤ ShortComplex Cᵒᵖ`. -/
@[simps]
def opFunctor : (ShortComplex C)ᵒᵖ ⥤ ShortComplex Cᵒᵖ 
goal: ∀ {X Y : (CategoryTheory.ShortComplex C)ᵒᵖ} (φ : X ⟶ Y),
  (CategoryTheory.ShortComplex.opFunctor C).map φ = CategoryTheory.ShortComplex.opMap φ.unop

full_name: CategoryTheory.ShortComplex.opFunctor
code: /-- The obvious functor `(ShortComplex C)ᵒᵖ ⥤ ShortComplex Cᵒᵖ`. -/
@[simps]
def opFunctor : (ShortComplex C)ᵒᵖ ⥤ ShortComplex Cᵒᵖ 
goal: CategoryTheory.Functor (CategoryTheory.ShortComplex C)ᵒᵖ (CategoryTheory.ShortComplex Cᵒᵖ)

full_name: CategoryTheory.ShortComplex.opFunctor_obj
code: /-- The obvious functor `(ShortComplex C)ᵒᵖ ⥤ ShortComplex Cᵒᵖ`. -/
@[simps]
def opFunctor : (ShortComplex C)ᵒᵖ ⥤ ShortComplex Cᵒᵖ 
goal: (CategoryTheory.ShortComplex.opFunctor C).obj S = (Opposite.unop S).op

full_name: CategoryTheory.ShortComplex.unopFunctor
code: /-- The obvious functor `ShortComplex Cᵒᵖ ⥤ (ShortComplex C)ᵒᵖ`. -/
@[simps]
def unopFunctor : ShortComplex Cᵒᵖ ⥤ (ShortComplex C)ᵒᵖ 
goal: CategoryTheory.Functor (CategoryTheory.ShortComplex Cᵒᵖ) (CategoryTheory.ShortComplex C)ᵒᵖ

full_name: CategoryTheory.ShortComplex.unopFunctor_obj
code: /-- The obvious functor `ShortComplex Cᵒᵖ ⥤ (ShortComplex C)ᵒᵖ`. -/
@[simps]
def unopFunctor : ShortComplex Cᵒᵖ ⥤ (ShortComplex C)ᵒᵖ 
goal: (CategoryTheory.ShortComplex.unopFunctor C).obj S = Opposite.op S.unop

full_name: CategoryTheory.ShortComplex.unopFunctor_map
code: /-- The obvious functor `ShortComplex Cᵒᵖ ⥤ (ShortComplex C)ᵒᵖ`. -/
@[simps]
def unopFunctor : ShortComplex Cᵒᵖ ⥤ (ShortComplex C)ᵒᵖ 
goal: ∀ {X Y : CategoryTheory.ShortComplex Cᵒᵖ} (φ : X ⟶ Y),
  (CategoryTheory.ShortComplex.unopFunctor C).map φ = (CategoryTheory.ShortComplex.unopMap φ).op

full_name: CategoryTheory.ShortComplex.opEquiv_inverse
code: /-- The obvious equivalence of categories `(ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ`. -/
@[simps]
def opEquiv : (ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ 
goal: (CategoryTheory.ShortComplex.opEquiv C).inverse = CategoryTheory.ShortComplex.unopFunctor C

full_name: CategoryTheory.ShortComplex.opEquiv
code: /-- The obvious equivalence of categories `(ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ`. -/
@[simps]
def opEquiv : (ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ 
goal: (CategoryTheory.ShortComplex C)ᵒᵖ ≌ CategoryTheory.ShortComplex Cᵒᵖ

full_name: CategoryTheory.ShortComplex.opEquiv_unitIso
code: /-- The obvious equivalence of categories `(ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ`. -/
@[simps]
def opEquiv : (ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ 
goal: (CategoryTheory.ShortComplex.opEquiv C).unitIso =
  CategoryTheory.Iso.refl (CategoryTheory.Functor.id (CategoryTheory.ShortComplex C)ᵒᵖ)

full_name: CategoryTheory.ShortComplex.opEquiv_counitIso
code: /-- The obvious equivalence of categories `(ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ`. -/
@[simps]
def opEquiv : (ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ 
goal: (CategoryTheory.ShortComplex.opEquiv C).counitIso =
  CategoryTheory.Iso.refl ((CategoryTheory.ShortComplex.unopFunctor C).comp (CategoryTheory.ShortComplex.opFunctor C))

full_name: CategoryTheory.ShortComplex.opEquiv_functor
code: /-- The obvious equivalence of categories `(ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ`. -/
@[simps]
def opEquiv : (ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ 
goal: (CategoryTheory.ShortComplex.opEquiv C).functor = CategoryTheory.ShortComplex.opFunctor C

full_name: CategoryTheory.ShortComplex.unopOp
code: /-- The canonical isomorphism `S.unop.op ≅ S` for a short complex `S` in `Cᵒᵖ` -/
abbrev unopOp (S : ShortComplex Cᵒᵖ) : S.unop.op ≅ S 
goal: S.unop.op ≅ S

full_name: CategoryTheory.ShortComplex.opUnop
code: /-- The canonical isomorphism `S.op.unop ≅ S` for a short complex `S` -/
abbrev opUnop (S : ShortComplex C) : S.op.unop ≅ S 
goal: S.op.unop ≅ S