Documentation

Mathlib.CategoryTheory.Bicategory.Product

Cartesian products of bicategories #

We define the bicategory instance on B × C when B and C are bicategories.

We define:

instance CategoryTheory.Bicategory.prod (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] :

The cartesian product of two bicategories.

Equations
    @[simp]
    theorem CategoryTheory.Bicategory.prod_whiskerRight_snd (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : B × C} {f✝ g✝ : a✝ b✝} (θ : f✝ g✝) (g : b✝ c✝) :
    (whiskerRight θ g).2 = whiskerRight θ.2 g.2
    @[simp]
    theorem CategoryTheory.Bicategory.prod_whiskerRight_fst (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : B × C} {f✝ g✝ : a✝ b✝} (θ : f✝ g✝) (g : b✝ c✝) :
    (whiskerRight θ g).1 = whiskerRight θ.1 g.1
    @[simp]
    theorem CategoryTheory.Bicategory.prod_leftUnitor_hom_fst (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ : B × C} (f : a✝ b✝) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_associator_hom_fst (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ d✝ : B × C} (f : a✝ b✝) (g : b✝ c✝) (h : c✝ d✝) :
    (associator f g h).hom.1 = (associator f.1 g.1 h.1).hom
    @[simp]
    theorem CategoryTheory.Bicategory.prod_homCategory_id_snd (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] (X Y : B × C) (X✝ : (X.1 Y.1) × (X.2 Y.2)) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_rightUnitor_hom_snd (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ : B × C} (f : a✝ b✝) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_leftUnitor_inv_snd (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ : B × C} (f : a✝ b✝) :
    @[simp]
    @[simp]
    theorem CategoryTheory.Bicategory.prod_homCategory_id_fst (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] (X Y : B × C) (X✝ : (X.1 Y.1) × (X.2 Y.2)) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_homCategory_comp_snd (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] (X Y : B × C) {X✝ Y✝ Z✝ : (X.1 Y.1) × (X.2 Y.2)} (f : (X✝.1 Y✝.1) × (X✝.2 Y✝.2)) (g : (Y✝.1 Z✝.1) × (Y✝.2 Z✝.2)) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_rightUnitor_inv_snd (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ : B × C} (f : a✝ b✝) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_comp_snd (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {X✝ Y✝ Z✝ : B × C} (f : (X✝.1 Y✝.1) × (X✝.2 Y✝.2)) (g : (Y✝.1 Z✝.1) × (Y✝.2 Z✝.2)) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_whiskerLeft_snd (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : B × C} (f : a✝ b✝) (g h : b✝ c✝) (θ : g h) :
    (whiskerLeft f θ).2 = whiskerLeft f.2 θ.2
    @[simp]
    @[simp]
    theorem CategoryTheory.Bicategory.prod_whiskerLeft_fst (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : B × C} (f : a✝ b✝) (g h : b✝ c✝) (θ : g h) :
    (whiskerLeft f θ).1 = whiskerLeft f.1 θ.1
    @[simp]
    theorem CategoryTheory.Bicategory.prod_leftUnitor_inv_fst (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ : B × C} (f : a✝ b✝) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_homCategory_comp_fst (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] (X Y : B × C) {X✝ Y✝ Z✝ : (X.1 Y.1) × (X.2 Y.2)} (f : (X✝.1 Y✝.1) × (X✝.2 Y✝.2)) (g : (Y✝.1 Z✝.1) × (Y✝.2 Z✝.2)) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_associator_hom_snd (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ d✝ : B × C} (f : a✝ b✝) (g : b✝ c✝) (h : c✝ d✝) :
    (associator f g h).hom.2 = (associator f.2 g.2 h.2).hom
    @[simp]
    theorem CategoryTheory.Bicategory.prod_rightUnitor_hom_fst (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ : B × C} (f : a✝ b✝) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_associator_inv_snd (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ d✝ : B × C} (f : a✝ b✝) (g : b✝ c✝) (h : c✝ d✝) :
    (associator f g h).inv.2 = (associator f.2 g.2 h.2).inv
    @[simp]
    theorem CategoryTheory.Bicategory.prod_Hom (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] (X Y : B × C) :
    (X Y) = ((X.1 Y.1) × (X.2 Y.2))
    @[simp]
    theorem CategoryTheory.Bicategory.prod_comp_fst (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {X✝ Y✝ Z✝ : B × C} (f : (X✝.1 Y✝.1) × (X✝.2 Y✝.2)) (g : (Y✝.1 Z✝.1) × (Y✝.2 Z✝.2)) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_leftUnitor_hom_snd (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ : B × C} (f : a✝ b✝) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_rightUnitor_inv_fst (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ : B × C} (f : a✝ b✝) :
    @[simp]
    theorem CategoryTheory.Bicategory.prod_associator_inv_fst (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ d✝ : B × C} (f : a✝ b✝) (g : b✝ c✝) (h : c✝ d✝) :
    (associator f g h).inv.1 = (associator f.1 g.1 h.1).inv

    sectL B c is the strictly unitary pseudofunctor B ⥤ B × C given by X ↦ (X, c).

    Equations
      Instances For
        @[simp]
        theorem CategoryTheory.Bicategory.Prod.sectL_obj (B : Type u₁) [Bicategory B] {C : Type u₂} [Bicategory C] (c : C) (a✝ : B) :
        (sectL B c).obj a✝ = (a✝, c)
        @[simp]
        theorem CategoryTheory.Bicategory.Prod.sectL_mapComp_inv (B : Type u₁) [Bicategory B] {C : Type u₂} [Bicategory C] (c : C) {a✝ b✝ c✝ : B} (f : a✝ b✝) (g : b✝ c✝) :
        @[simp]
        theorem CategoryTheory.Bicategory.Prod.sectL_mapComp_hom (B : Type u₁) [Bicategory B] {C : Type u₂} [Bicategory C] (c : C) {a✝ b✝ c✝ : B} (f : a✝ b✝) (g : b✝ c✝) :
        @[simp]
        theorem CategoryTheory.Bicategory.Prod.sectL_map (B : Type u₁) [Bicategory B] {C : Type u₂} [Bicategory C] (c : C) {X✝ Y✝ : B} (a✝ : X✝ Y✝) :
        (sectL B c).map a✝ = Prod.mkHom a✝ (CategoryStruct.id c)
        @[simp]
        theorem CategoryTheory.Bicategory.Prod.sectL_map₂ (B : Type u₁) [Bicategory B] {C : Type u₂} [Bicategory C] (c : C) {a✝ b✝ : B} {f✝ g✝ : a✝ b✝} (a✝¹ : f✝ g✝) :

        sectR b C is the strictly unitary pseudofunctor C ⥤ B × C given by Y ↦ (b, Y).

        Equations
          Instances For
            @[simp]
            theorem CategoryTheory.Bicategory.Prod.sectR_mapComp_inv {B : Type u₁} [Bicategory B] (b : B) (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : C} (f : a✝ b✝) (g : b✝ c✝) :
            @[simp]
            theorem CategoryTheory.Bicategory.Prod.sectR_map₂ {B : Type u₁} [Bicategory B] (b : B) (C : Type u₂) [Bicategory C] {a✝ b✝ : C} {f✝ g✝ : a✝ b✝} (a✝¹ : f✝ g✝) :
            @[simp]
            theorem CategoryTheory.Bicategory.Prod.sectR_map {B : Type u₁} [Bicategory B] (b : B) (C : Type u₂) [Bicategory C] {X✝ Y✝ : C} (a✝ : X✝ Y✝) :
            (sectR b C).map a✝ = Prod.mkHom (CategoryStruct.id b) a✝
            @[simp]
            theorem CategoryTheory.Bicategory.Prod.sectR_mapComp_hom {B : Type u₁} [Bicategory B] (b : B) (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : C} (f : a✝ b✝) (g : b✝ c✝) :
            @[simp]
            theorem CategoryTheory.Bicategory.Prod.sectR_obj {B : Type u₁} [Bicategory B] (b : B) (C : Type u₂) [Bicategory C] (a✝ : C) :
            (sectR b C).obj a✝ = (b, a✝)

            fst is the strict pseudofunctor given by projection to the first factor.

            Equations
              Instances For
                @[simp]
                theorem CategoryTheory.Bicategory.Prod.fst_map (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {X✝ Y✝ : B × C} (a✝ : X✝ Y✝) :
                (fst B C).map a✝ = a✝.1
                @[simp]
                @[simp]
                theorem CategoryTheory.Bicategory.Prod.fst_obj (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] (a✝ : B × C) :
                (fst B C).obj a✝ = a✝.1
                @[simp]
                theorem CategoryTheory.Bicategory.Prod.fst_mapComp_inv (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : B × C} (f : a✝ b✝) (g : b✝ c✝) :
                @[simp]
                theorem CategoryTheory.Bicategory.Prod.fst_mapComp_hom (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : B × C} (f : a✝ b✝) (g : b✝ c✝) :
                @[simp]
                @[simp]
                theorem CategoryTheory.Bicategory.Prod.fst_map₂ (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ : B × C} {f✝ g✝ : a✝ b✝} (a✝¹ : f✝ g✝) :
                (fst B C).map₂ a✝¹ = a✝¹.1

                snd is the strict pseudofunctor given by projection to the second factor.

                Equations
                  Instances For
                    @[simp]
                    @[simp]
                    theorem CategoryTheory.Bicategory.Prod.snd_obj (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] (a✝ : B × C) :
                    (snd B C).obj a✝ = a✝.2
                    @[simp]
                    theorem CategoryTheory.Bicategory.Prod.snd_mapComp_hom (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : B × C} (f : a✝ b✝) (g : b✝ c✝) :
                    @[simp]
                    @[simp]
                    theorem CategoryTheory.Bicategory.Prod.snd_map (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {X✝ Y✝ : B × C} (a✝ : X✝ Y✝) :
                    (snd B C).map a✝ = a✝.2
                    @[simp]
                    theorem CategoryTheory.Bicategory.Prod.snd_mapComp_inv (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : B × C} (f : a✝ b✝) (g : b✝ c✝) :
                    @[simp]
                    theorem CategoryTheory.Bicategory.Prod.snd_map₂ (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ : B × C} {f✝ g✝ : a✝ b✝} (a✝¹ : f✝ g✝) :
                    (snd B C).map₂ a✝¹ = a✝¹.2

                    The pseudofunctor swapping the factors of a cartesian product of bicategories, B × C ⥤ C × B.

                    Equations
                      Instances For
                        @[simp]
                        theorem CategoryTheory.Bicategory.Prod.swap_map (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {X✝ Y✝ : B × C} (a✝ : X✝ Y✝) :
                        (swap B C).map a✝ = Prod.mkHom a✝.2 a✝.1
                        @[simp]
                        theorem CategoryTheory.Bicategory.Prod.swap_mapComp_hom (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : B × C} (f : a✝ b✝) (g : b✝ c✝) :
                        @[simp]
                        theorem CategoryTheory.Bicategory.Prod.swap_obj (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] (a✝ : B × C) :
                        (swap B C).obj a✝ = (a✝.2, a✝.1)
                        @[simp]
                        theorem CategoryTheory.Bicategory.Prod.swap_mapComp_inv (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ c✝ : B × C} (f : a✝ b✝) (g : b✝ c✝) :
                        @[simp]
                        theorem CategoryTheory.Bicategory.Prod.swap_map₂ (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] {a✝ b✝ : B × C} {f✝ g✝ : a✝ b✝} (a✝¹ : f✝ g✝) :
                        (swap B C).map₂ a✝¹ = Prod.mkHom a✝¹.2 a✝¹.1
                        instance CategoryTheory.Bicategory.uniformProd (B : Type u₁) [Bicategory B] (C : Type u₁) [Bicategory C] :

                        Bicategory.uniformProd B C is an additional instance specialised so both factors have the same universe levels. This helps typeclass resolution.

                        Equations