File: Mathlib/CategoryTheory/GuitartExact/VerticalComposition.lean

full_name: CategoryTheory.TwoSquare.whiskerVertical_app
code: /-- Given `w : TwoSquare T L R B`, one may obtain a 2-square `TwoSquare T L' R' B` if we
provide natural transformations `α : L ⟶ L'` and `β : R' ⟶ R`. -/
@[simps!]
def whiskerVertical (α : L ⟶ L') (β : R' ⟶ R) :
    TwoSquare T L' R' B 
goal: (w.whiskerVertical α β).app X =
  CategoryTheory.CategoryStruct.comp (β.app (T.obj X)) (CategoryTheory.CategoryStruct.comp (w.app X) (B.map (α.app X)))

full_name: CategoryTheory.TwoSquare.whiskerVertical
code: /-- Given `w : TwoSquare T L R B`, one may obtain a 2-square `TwoSquare T L' R' B` if we
provide natural transformations `α : L ⟶ L'` and `β : R' ⟶ R`. -/
@[simps!]
def whiskerVertical (α : L ⟶ L') (β : R' ⟶ R) :
    TwoSquare T L' R' B 
goal: CategoryTheory.TwoSquare T L' R' B

full_name: CategoryTheory.TwoSquare.GuitartExact.whiskerVertical
code: /-- A 2-square stays Guitart exact if we replace the left and right functors
by isomorphic functors. See also `whiskerVertical_iff`. -/
lemma whiskerVertical [w.GuitartExact] (α : L ≅ L') (β : R ≅ R') :
    (w.whiskerVertical α.hom β.inv).GuitartExact 
goal: (w.whiskerVertical α.hom β.inv).GuitartExact

full_name: CategoryTheory.TwoSquare.GuitartExact.whiskerVertical_iff
code: /-- A 2-square is Guitart exact iff it is so after replacing the left and right functors by
isomorphic functors. -/
@[simp]
lemma whiskerVertical_iff (α : L ≅ L') (β : R ≅ R') :
    (w.whiskerVertical α.hom β.inv).GuitartExact ↔ w.GuitartExact 
goal: (w.whiskerVertical α.hom β.inv).GuitartExact ↔ w.GuitartExact

full_name: CategoryTheory.TwoSquare.GuitartExact.instWhiskerVerticalOfIsIsoFunctor
code: instance [w.GuitartExact] (α : L ⟶ L') (β : R' ⟶ R)
    [IsIso α] [IsIso β] : (w.whiskerVertical α β).GuitartExact 
goal: (w.whiskerVertical α β).GuitartExact

full_name: CategoryTheory.TwoSquare.vComp_app
code: /-- The vertical composition of 2-squares. -/
@[simps!]
def vComp : TwoSquare H₁ (L₁ ⋙ L₂) (R₁ ⋙ R₂) H₃ 
goal: (w.vComp w').app X = CategoryTheory.CategoryStruct.comp (R₂.map (w.app X)) (w'.app (L₁.obj X))

full_name: CategoryTheory.TwoSquare.vComp
code: /-- The vertical composition of 2-squares. -/
@[simps!]
def vComp : TwoSquare H₁ (L₁ ⋙ L₂) (R₁ ⋙ R₂) H₃ 
goal: CategoryTheory.TwoSquare H₁ (L₁.comp L₂) (R₁.comp R₂) H₃

full_name: CategoryTheory.TwoSquare.structuredArrowDownwardsComp
code: /-- The canonical isomorphism between
`w.structuredArrowDownwards Y₁ ⋙ w'.structuredArrowDownwards (R₁.obj Y₁)` and
`(w.vComp w').structuredArrowDownwards Y₁.` -/
def structuredArrowDownwardsComp (Y₁ : D₁) :
    w.structuredArrowDownwards Y₁ ⋙ w'.structuredArrowDownwards (R₁.obj Y₁) ≅
      (w.vComp w').structuredArrowDownwards Y₁ 
goal: (w.structuredArrowDownwards Y₁).comp (w'.structuredArrowDownwards (R₁.obj Y₁)) ≅
  (w.vComp w').structuredArrowDownwards Y₁

full_name: CategoryTheory.TwoSquare.vComp'_app
code: /-- The vertical composition of 2-squares. (Variant where we allow the replacement of
the vertical compositions by isomorphic functors.) -/
@[simps!]
def vComp' {L₁₂ : C₁ ⥤ C₃} {R₁₂ : D₁ ⥤ D₃} (eL : L₁ ⋙ L₂ ≅ L₁₂)
    (eR : R₁ ⋙ R₂ ≅ R₁₂) : TwoSquare H₁ L₁₂ R₁₂ H₃ 
goal: (w.vComp' w' eL eR).app X =
  CategoryTheory.CategoryStruct.comp (eR.inv.app (H₁.obj X))
    (CategoryTheory.CategoryStruct.comp (R₂.map (w.app X))
      (CategoryTheory.CategoryStruct.comp (w'.app (L₁.obj X)) (H₃.map (eL.hom.app X))))

full_name: CategoryTheory.TwoSquare.vComp'
code: /-- The vertical composition of 2-squares. (Variant where we allow the replacement of
the vertical compositions by isomorphic functors.) -/
@[simps!]
def vComp' {L₁₂ : C₁ ⥤ C₃} {R₁₂ : D₁ ⥤ D₃} (eL : L₁ ⋙ L₂ ≅ L₁₂)
    (eR : R₁ ⋙ R₂ ≅ R₁₂) : TwoSquare H₁ L₁₂ R₁₂ H₃ 
goal: CategoryTheory.TwoSquare H₁ L₁₂ R₁₂ H₃

full_name: CategoryTheory.TwoSquare.GuitartExact.vComp
code: instance vComp [hw : w.GuitartExact] [hw' : w'.GuitartExact] :
    (w.vComp w').GuitartExact 
goal: (w.vComp w').GuitartExact

full_name: CategoryTheory.TwoSquare.GuitartExact.vComp'
code: instance vComp' [GuitartExact w] [GuitartExact w'] {L₁₂ : C₁ ⥤ C₃}
    {R₁₂ : D₁ ⥤ D₃} (eL : L₁ ⋙ L₂ ≅ L₁₂)
    (eR : R₁ ⋙ R₂ ≅ R₁₂) : (w.vComp' w' eL eR).GuitartExact 
goal: (w.vComp' w' eL eR).GuitartExact

full_name: CategoryTheory.TwoSquare.GuitartExact.vComp_iff_of_equivalences
code: lemma vComp_iff_of_equivalences (eL : C₂ ≌ C₃) (eR : D₂ ≌ D₃)
    (w' : H₂ ⋙ eR.functor ≅ eL.functor ⋙ H₃) :
    (w.vComp w'.hom).GuitartExact ↔ w.GuitartExact 
goal: (w.vComp w'.hom).GuitartExact ↔ w.GuitartExact

full_name: CategoryTheory.TwoSquare.GuitartExact.vComp'_iff_of_equivalences
code: lemma vComp'_iff_of_equivalences (E : C₂ ≌ C₃) (E' : D₂ ≌ D₃)
    (w' : H₂ ⋙ E'.functor ≅ E.functor ⋙ H₃) {L₁₂ : C₁ ⥤ C₃}
    {R₁₂ : D₁ ⥤ D₃} (eL : L₁ ⋙ E.functor ≅ L₁₂)
    (eR : R₁ ⋙ E'.functor ≅ R₁₂) :
    (w.vComp' w'.hom eL eR).GuitartExact ↔ w.GuitartExact 
goal: (w.vComp' w'.hom eL eR).GuitartExact ↔ w.GuitartExact