Documentation

Mathlib.CategoryTheory.GuitartExact.Prod

External products of Guitart exact squares #

In this file, we show that the external product of two Guitart exact squares is a Guitart exact square.

@[implicit_reducible]
def CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.functorObj {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) (X : (w.prod w').StructuredArrowRightwards g) :

Auxiliary definition for TwoSquare.StructuredArrowRightwards.prodEquivalence.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.functorObj_fst {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) (X : (w.prod w').StructuredArrowRightwards g) :
    @[simp]
    theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.functorObj_snd {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) (X : (w.prod w').StructuredArrowRightwards g) :
    @[implicit_reducible]
    def CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.functor {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) :

    Auxiliary definition for TwoSquare.StructuredArrowRightwards.prodEquivalence.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.functor_map {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) {X✝ Y✝ : (w.prod w').StructuredArrowRightwards g} (f : X✝ ⟶ Y✝) :
      @[simp]
      theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.functor_obj {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) (X : (w.prod w').StructuredArrowRightwards g) :
      (functor w w' g).obj X = functorObj w w' g X
      @[implicit_reducible]
      def CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.inverseObj {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) (X : w.StructuredArrowRightwards g.1 × w'.StructuredArrowRightwards g.2) :

      Auxiliary definition for TwoSquare.StructuredArrowRightwards.prodEquivalence.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.inverseObj_left_as {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) (X : w.StructuredArrowRightwards g.1 × w'.StructuredArrowRightwards g.2) :
        @[simp]
        theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.inverseObj_hom_left {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) (X : w.StructuredArrowRightwards g.1 × w'.StructuredArrowRightwards g.2) :
        @[simp]
        theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.inverseObj_right_left {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) (X : w.StructuredArrowRightwards g.1 × w'.StructuredArrowRightwards g.2) :
        @[simp]
        theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.inverseObj_right_right_as {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) (X : w.StructuredArrowRightwards g.1 × w'.StructuredArrowRightwards g.2) :
        @[simp]
        theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.inverseObj_right_hom {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) (X : w.StructuredArrowRightwards g.1 × w'.StructuredArrowRightwards g.2) :
        @[implicit_reducible]
        def CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.inverse {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) :

        Auxiliary definition for TwoSquare.StructuredArrowRightwards.prodEquivalence.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.inverse_obj {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) (X : w.StructuredArrowRightwards g.1 × w'.StructuredArrowRightwards g.2) :
          (inverse w w' g).obj X = inverseObj w w' g X
          @[simp]
          theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence.inverse_map {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) {X✝ Y✝ : w.StructuredArrowRightwards g.1 × w'.StructuredArrowRightwards g.2} (f : X✝ ⟶ Y✝) :
          @[implicit_reducible]
          def CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) :

          If w and w' are two 2-squares of functors, then the categories StructuredArrowRightwards (w.prod w') g decomposes as a product of two StructuredArrowRightwards for w and w'.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence_inverse {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) :
            @[simp]
            theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence_counitIso {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) :
            @[simp]
            theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence_unitIso {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) :
            @[simp]
            theorem CategoryTheory.TwoSquare.StructuredArrowRightwards.prodEquivalence_functor {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') {Y₂ : C₂ × D₂} {Y₃ : C₃ × D₃} (g : (R.prod R').obj Y₂ ⟶ (B.prod B').obj Y₃) :
            instance CategoryTheory.TwoSquare.GuitartExact.prod {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {D₁ : Type u_5} {D₂ : Type u_6} {D₃ : Type u_7} {D₄ : Type u_8} [Category.{v_1, u_1} C₁] [Category.{v_2, u_2} C₂] [Category.{v_3, u_3} C₃] [Category.{v_4, u_4} C₄] [Category.{v_5, u_5} D₁] [Category.{v_6, u_6} D₂] [Category.{v_7, u_7} D₃] [Category.{v_8, u_8} D₄] {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {T' : Functor D₁ D₂} {L' : Functor D₁ D₃} {R' : Functor D₂ D₄} {B' : Functor D₃ D₄} (w : TwoSquare T L R B) (w' : TwoSquare T' L' R' B') [w.GuitartExact] [w'.GuitartExact] :