Cartesian products of bicategories #
We define the bicategory instance on B × C when B and C are bicategories.
We define:
sectL B c: the strictly unitary pseudofunctorB ⥤ B × Cgiven byX ↦ ⟨X, c⟩sectR b C: the strictly unitary pseudofunctorC ⥤ B × Cgiven byY ↦ ⟨b, Y⟩fst: the strict pseudofunctor⟨X, Y⟩ ↦ Xsnd: the strict pseudofunctor⟨X, Y⟩ ↦ Yswap: the strict pseudofunctorB × C ⥤ C × Bgiven by⟨X, Y⟩ ↦ ⟨Y, X⟩
instance
CategoryTheory.Bicategory.prod
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
:
Bicategory (B × C)
The cartesian product of two bicategories.
Equations
- One or more equations did not get rendered due to their size.
@[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✝)
:
@[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✝)
:
@[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✝)
:
@[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]
theorem
CategoryTheory.Bicategory.prod_id_fst
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(X : B × C)
:
@[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)
:
@[simp]
theorem
CategoryTheory.Bicategory.prod_id_snd
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(X : B × C)
:
@[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)
:
@[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✝)
:
@[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✝)
:
@[simp]
theorem
CategoryTheory.Bicategory.prod_Hom
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(X Y : B × C)
:
@[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✝)
:
def
CategoryTheory.Bicategory.Prod.sectL
(B : Type u₁)
[Bicategory B]
{C : Type u₂}
[Bicategory C]
(c : C)
:
StrictlyUnitaryPseudofunctor B (B × C)
sectL B c is the strictly unitary pseudofunctor B ⥤ B × C given by X ↦ (X, c).
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CategoryTheory.Bicategory.Prod.sectL_obj
(B : Type u₁)
[Bicategory B]
{C : Type u₂}
[Bicategory C]
(c : C)
(a✝ : B)
:
@[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✝)
:
((sectL B c).mapComp f g).inv = Prod.mkHom (CategoryStruct.id (CategoryStruct.comp f g)) (rightUnitor (CategoryStruct.id c)).hom
@[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✝)
:
((sectL B c).mapComp f g).hom = Prod.mkHom (CategoryStruct.id (CategoryStruct.comp f g)) (rightUnitor (CategoryStruct.id c)).inv
@[simp]
theorem
CategoryTheory.Bicategory.Prod.sectL_mapId_inv
(B : Type u₁)
[Bicategory B]
{C : Type u₂}
[Bicategory C]
(c : C)
(x : B)
:
((sectL B c).mapId x).inv = Prod.mkHom (CategoryStruct.id (CategoryStruct.id x)) (CategoryStruct.id (CategoryStruct.id 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✝)
:
@[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✝)
:
@[simp]
theorem
CategoryTheory.Bicategory.Prod.sectL_mapId_hom
(B : Type u₁)
[Bicategory B]
{C : Type u₂}
[Bicategory C]
(c : C)
(x : B)
:
((sectL B c).mapId x).hom = Prod.mkHom (CategoryStruct.id (CategoryStruct.id x)) (CategoryStruct.id (CategoryStruct.id c))
def
CategoryTheory.Bicategory.Prod.sectR
{B : Type u₁}
[Bicategory B]
(b : B)
(C : Type u₂)
[Bicategory C]
:
StrictlyUnitaryPseudofunctor C (B × C)
sectR b C is the strictly unitary pseudofunctor C ⥤ B × C given by Y ↦ (b, Y).
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CategoryTheory.Bicategory.Prod.sectR_mapId_hom
{B : Type u₁}
[Bicategory B]
(b : B)
(C : Type u₂)
[Bicategory C]
(x : C)
:
((sectR b C).mapId x).hom = Prod.mkHom (CategoryStruct.id (CategoryStruct.id b)) (CategoryStruct.id (CategoryStruct.id x))
@[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✝)
:
((sectR b C).mapComp f g).inv = Prod.mkHom (rightUnitor (CategoryStruct.id b)).hom (CategoryStruct.id (CategoryStruct.comp f g))
@[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✝)
:
@[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✝)
:
((sectR b C).mapComp f g).hom = Prod.mkHom (rightUnitor (CategoryStruct.id b)).inv (CategoryStruct.id (CategoryStruct.comp f g))
@[simp]
theorem
CategoryTheory.Bicategory.Prod.sectR_mapId_inv
{B : Type u₁}
[Bicategory B]
(b : B)
(C : Type u₂)
[Bicategory C]
(x : C)
:
((sectR b C).mapId x).inv = Prod.mkHom (CategoryStruct.id (CategoryStruct.id b)) (CategoryStruct.id (CategoryStruct.id x))
@[simp]
theorem
CategoryTheory.Bicategory.Prod.sectR_obj
{B : Type u₁}
[Bicategory B]
(b : B)
(C : Type u₂)
[Bicategory C]
(a✝ : C)
:
def
CategoryTheory.Bicategory.Prod.fst
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
:
StrictPseudofunctor (B × C) B
fst is the strict pseudofunctor given by projection to the first factor.
Equations
- One or more equations did not get rendered due to their size.
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✝)
:
@[simp]
theorem
CategoryTheory.Bicategory.Prod.fst_mapId_hom
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(x : B × C)
:
@[simp]
theorem
CategoryTheory.Bicategory.Prod.fst_obj
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(a✝ : B × C)
:
@[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]
theorem
CategoryTheory.Bicategory.Prod.fst_mapId_inv
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(x : B × C)
:
@[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✝)
:
def
CategoryTheory.Bicategory.Prod.snd
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
:
StrictPseudofunctor (B × C) C
snd is the strict pseudofunctor given by projection to the second factor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CategoryTheory.Bicategory.Prod.snd_mapId_hom
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(x : B × C)
:
@[simp]
theorem
CategoryTheory.Bicategory.Prod.snd_obj
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(a✝ : B × C)
:
@[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]
theorem
CategoryTheory.Bicategory.Prod.snd_mapId_inv
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(x : B × C)
:
@[simp]
theorem
CategoryTheory.Bicategory.Prod.snd_map
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
{X✝ Y✝ : B × C}
(a✝ : X✝ ⟶ Y✝)
:
@[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✝)
:
def
CategoryTheory.Bicategory.Prod.swap
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
:
StrictPseudofunctor (B × C) (C × B)
The pseudofunctor swapping the factors of a cartesian product of bicategories,
B × C ⥤ C × B.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CategoryTheory.Bicategory.Prod.swap_mapId_hom
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(x : B × C)
:
((swap B C).mapId x).hom = Prod.mkHom (CategoryStruct.id (CategoryStruct.id x.2)) (CategoryStruct.id (CategoryStruct.id x.1))
@[simp]
theorem
CategoryTheory.Bicategory.Prod.swap_map
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
{X✝ Y✝ : B × C}
(a✝ : X✝ ⟶ Y✝)
:
@[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✝)
:
((swap B C).mapComp f g).hom = Prod.mkHom (CategoryStruct.id (CategoryStruct.comp f.2 g.2)) (CategoryStruct.id (CategoryStruct.comp f.1 g.1))
@[simp]
theorem
CategoryTheory.Bicategory.Prod.swap_obj
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(a✝ : B × C)
:
@[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✝)
:
((swap B C).mapComp f g).inv = Prod.mkHom (CategoryStruct.id (CategoryStruct.comp f.2 g.2)) (CategoryStruct.id (CategoryStruct.comp f.1 g.1))
@[simp]
theorem
CategoryTheory.Bicategory.Prod.swap_mapId_inv
(B : Type u₁)
[Bicategory B]
(C : Type u₂)
[Bicategory C]
(x : B × C)
:
((swap B C).mapId x).inv = Prod.mkHom (CategoryStruct.id (CategoryStruct.id x.2)) (CategoryStruct.id (CategoryStruct.id x.1))
@[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✝)
:
instance
CategoryTheory.Bicategory.uniformProd
(B : Type u₁)
[Bicategory B]
(C : Type u₁)
[Bicategory C]
:
Bicategory (B × C)
Bicategory.uniformProd B C is an additional instance specialised so both factors have the same
universe levels. This helps typeclass resolution.