ChosenFiniteProducts
for Over X
#
We provide a ChosenFiniteProducts (Over X)
instance via pullbacks, and provide simp lemmas
for the induced MonoidalCategory (Over X)
instance.
@[reducible]
noncomputable def
CategoryTheory.Over.chosenFiniteProducts
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
(X : C)
:
A choice of finite products of Over X
given by Limits.pullback
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
CategoryTheory.Over.tensorObj_ext
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X R : C}
{S T : Over X}
(f₁ f₂ : R ⟶ (MonoidalCategoryStruct.tensorObj S T).left)
(e₁ :
CategoryStruct.comp f₁ (Limits.pullback.fst S.hom T.hom) = CategoryStruct.comp f₂ (Limits.pullback.fst S.hom T.hom))
(e₂ :
CategoryStruct.comp f₁ (Limits.pullback.snd S.hom T.hom) = CategoryStruct.comp f₂ (Limits.pullback.snd S.hom T.hom))
:
theorem
CategoryTheory.Over.tensorObj_ext_iff
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X R : C}
{S T : Over X}
{f₁ f₂ : R ⟶ (MonoidalCategoryStruct.tensorObj S T).left}
:
f₁ = f₂ ↔ CategoryStruct.comp f₁ (Limits.pullback.fst S.hom T.hom) = CategoryStruct.comp f₂ (Limits.pullback.fst S.hom T.hom) ∧ CategoryStruct.comp f₁ (Limits.pullback.snd S.hom T.hom) = CategoryStruct.comp f₂ (Limits.pullback.snd S.hom T.hom)
@[simp]
theorem
CategoryTheory.Over.tensorObj_left
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S : Over X)
:
@[simp]
theorem
CategoryTheory.Over.tensorObj_hom
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S : Over X)
:
(MonoidalCategoryStruct.tensorObj R S).hom = CategoryStruct.comp (Limits.pullback.fst R.hom S.hom) R.hom
@[simp]
theorem
CategoryTheory.Over.tensorUnit_left
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
:
@[simp]
theorem
CategoryTheory.Over.tensorUnit_hom
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
:
@[simp]
theorem
CategoryTheory.Over.lift_left
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T : Over X}
(f : R ⟶ S)
(g : R ⟶ T)
:
@[simp]
theorem
CategoryTheory.Over.toUnit_left
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R : Over X}
:
@[simp]
theorem
CategoryTheory.Over.associator_hom_left_fst
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
:
@[simp]
theorem
CategoryTheory.Over.associator_hom_left_fst_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
{Z : C}
(h : R.left ⟶ Z)
:
CategoryStruct.comp (MonoidalCategoryStruct.associator R S T).hom.left
(CategoryStruct.comp (Limits.pullback.fst R.hom (CategoryStruct.comp (Limits.pullback.fst S.hom T.hom) S.hom)) h) = CategoryStruct.comp (Limits.pullback.fst (MonoidalCategoryStruct.tensorObj R S).hom T.hom)
(CategoryStruct.comp (Limits.pullback.fst R.hom S.hom) h)
@[simp]
theorem
CategoryTheory.Over.associator_hom_left_snd_fst
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
:
CategoryStruct.comp (MonoidalCategoryStruct.associator R S T).hom.left
(CategoryStruct.comp (Limits.pullback.snd R.hom (CategoryStruct.comp (Limits.pullback.fst S.hom T.hom) S.hom))
(Limits.pullback.fst S.hom T.hom)) = CategoryStruct.comp (Limits.pullback.fst (MonoidalCategoryStruct.tensorObj R S).hom T.hom)
(Limits.pullback.snd R.hom S.hom)
@[simp]
theorem
CategoryTheory.Over.associator_hom_left_snd_fst_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
{Z : C}
(h : S.left ⟶ Z)
:
CategoryStruct.comp (MonoidalCategoryStruct.associator R S T).hom.left
(CategoryStruct.comp (Limits.pullback.snd R.hom (CategoryStruct.comp (Limits.pullback.fst S.hom T.hom) S.hom))
(CategoryStruct.comp (Limits.pullback.fst S.hom T.hom) h)) = CategoryStruct.comp (Limits.pullback.fst (MonoidalCategoryStruct.tensorObj R S).hom T.hom)
(CategoryStruct.comp (Limits.pullback.snd R.hom S.hom) h)
@[simp]
theorem
CategoryTheory.Over.associator_hom_left_snd_snd
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
:
@[simp]
theorem
CategoryTheory.Over.associator_hom_left_snd_snd_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
{Z : C}
(h : T.left ⟶ Z)
:
CategoryStruct.comp (MonoidalCategoryStruct.associator R S T).hom.left
(CategoryStruct.comp (Limits.pullback.snd R.hom (CategoryStruct.comp (Limits.pullback.fst S.hom T.hom) S.hom))
(CategoryStruct.comp (Limits.pullback.snd S.hom T.hom) h)) = CategoryStruct.comp (Limits.pullback.snd (MonoidalCategoryStruct.tensorObj R S).hom T.hom) h
@[simp]
theorem
CategoryTheory.Over.associator_inv_left_fst_fst
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
:
@[simp]
theorem
CategoryTheory.Over.associator_inv_left_fst_fst_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
{Z : C}
(h : R.left ⟶ Z)
:
CategoryStruct.comp (MonoidalCategoryStruct.associator R S T).inv.left
(CategoryStruct.comp (Limits.pullback.fst (CategoryStruct.comp (Limits.pullback.fst R.hom S.hom) R.hom) T.hom)
(CategoryStruct.comp (Limits.pullback.fst R.hom S.hom) h)) = CategoryStruct.comp (Limits.pullback.fst R.hom (MonoidalCategoryStruct.tensorObj S T).hom) h
@[simp]
theorem
CategoryTheory.Over.associator_inv_left_fst_snd
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
:
CategoryStruct.comp (MonoidalCategoryStruct.associator R S T).inv.left
(CategoryStruct.comp (Limits.pullback.fst (CategoryStruct.comp (Limits.pullback.fst R.hom S.hom) R.hom) T.hom)
(Limits.pullback.snd R.hom S.hom)) = CategoryStruct.comp (Limits.pullback.snd R.hom (MonoidalCategoryStruct.tensorObj S T).hom)
(Limits.pullback.fst S.hom T.hom)
@[simp]
theorem
CategoryTheory.Over.associator_inv_left_fst_snd_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
{Z : C}
(h : S.left ⟶ Z)
:
CategoryStruct.comp (MonoidalCategoryStruct.associator R S T).inv.left
(CategoryStruct.comp (Limits.pullback.fst (CategoryStruct.comp (Limits.pullback.fst R.hom S.hom) R.hom) T.hom)
(CategoryStruct.comp (Limits.pullback.snd R.hom S.hom) h)) = CategoryStruct.comp (Limits.pullback.snd R.hom (MonoidalCategoryStruct.tensorObj S T).hom)
(CategoryStruct.comp (Limits.pullback.fst S.hom T.hom) h)
@[simp]
theorem
CategoryTheory.Over.associator_inv_left_snd
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
:
@[simp]
theorem
CategoryTheory.Over.associator_inv_left_snd_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(R S T : Over X)
{Z : C}
(h : T.left ⟶ Z)
:
CategoryStruct.comp (MonoidalCategoryStruct.associator R S T).inv.left
(CategoryStruct.comp (Limits.pullback.snd (CategoryStruct.comp (Limits.pullback.fst R.hom S.hom) R.hom) T.hom) h) = CategoryStruct.comp (Limits.pullback.snd R.hom (MonoidalCategoryStruct.tensorObj S T).hom)
(CategoryStruct.comp (Limits.pullback.snd S.hom T.hom) h)
@[simp]
theorem
CategoryTheory.Over.leftUnitor_hom_left
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(Y : Over X)
:
@[simp]
theorem
CategoryTheory.Over.leftUnitor_inv_left_fst
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(Y : Over X)
:
@[simp]
theorem
CategoryTheory.Over.leftUnitor_inv_left_fst_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(Y : Over X)
{Z : C}
(h : X ⟶ Z)
:
@[simp]
theorem
CategoryTheory.Over.leftUnitor_inv_left_snd
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(Y : Over X)
:
@[simp]
theorem
CategoryTheory.Over.leftUnitor_inv_left_snd_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(Y : Over X)
{Z : C}
(h : Y.left ⟶ Z)
:
@[simp]
theorem
CategoryTheory.Over.rightUnitor_hom_left
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(Y : Over X)
:
@[simp]
theorem
CategoryTheory.Over.rightUnitor_inv_left_fst
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(Y : Over X)
:
@[simp]
theorem
CategoryTheory.Over.rightUnitor_inv_left_fst_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(Y : Over X)
{Z : C}
(h : Y.left ⟶ Z)
:
@[simp]
theorem
CategoryTheory.Over.rightUnitor_inv_left_snd
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(Y : Over X)
:
@[simp]
theorem
CategoryTheory.Over.rightUnitor_inv_left_snd_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
(Y : Over X)
{Z : C}
(h : X ⟶ Z)
:
theorem
CategoryTheory.Over.whiskerLeft_left
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T : Over X}
(f : S ⟶ T)
:
(MonoidalCategoryStruct.whiskerLeft R f).left = Limits.pullback.map R.hom S.hom R.hom T.hom (CategoryStruct.id ((Functor.id C).obj R.left)) f.left
(CategoryStruct.id ((Functor.fromPUnit X).obj R.right)) ⋯ ⋯
@[simp]
theorem
CategoryTheory.Over.whiskerLeft_left_fst
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T : Over X}
(f : S ⟶ T)
:
@[simp]
theorem
CategoryTheory.Over.whiskerLeft_left_fst_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T : Over X}
(f : S ⟶ T)
{Z : C}
(h : R.left ⟶ Z)
:
@[simp]
theorem
CategoryTheory.Over.whiskerLeft_left_snd
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T : Over X}
(f : S ⟶ T)
:
@[simp]
theorem
CategoryTheory.Over.whiskerLeft_left_snd_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T : Over X}
(f : S ⟶ T)
{Z : C}
(h : T.left ⟶ Z)
:
theorem
CategoryTheory.Over.whiskerRight_left
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T : Over X}
(f : S ⟶ T)
:
(MonoidalCategoryStruct.whiskerRight f R).left = Limits.pullback.map S.hom R.hom T.hom R.hom f.left (CategoryStruct.id ((Functor.id C).obj R.left))
(CategoryStruct.id ((Functor.fromPUnit X).obj S.right)) ⋯ ⋯
@[simp]
theorem
CategoryTheory.Over.whiskerRight_left_fst
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T : Over X}
(f : S ⟶ T)
:
@[simp]
theorem
CategoryTheory.Over.whiskerRight_left_fst_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T : Over X}
(f : S ⟶ T)
{Z : C}
(h : T.left ⟶ Z)
:
@[simp]
theorem
CategoryTheory.Over.whiskerRight_left_snd
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T : Over X}
(f : S ⟶ T)
:
@[simp]
theorem
CategoryTheory.Over.whiskerRight_left_snd_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T : Over X}
(f : S ⟶ T)
{Z : C}
(h : R.left ⟶ Z)
:
theorem
CategoryTheory.Over.tensorHom_left
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T U : Over X}
(f : R ⟶ S)
(g : T ⟶ U)
:
(MonoidalCategoryStruct.tensorHom f g).left = Limits.pullback.map R.hom T.hom S.hom U.hom f.left g.left (CategoryStruct.id ((Functor.fromPUnit X).obj R.right)) ⋯ ⋯
@[simp]
theorem
CategoryTheory.Over.tensorHom_left_fst
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T U : Over X}
(f : R ⟶ S)
(g : T ⟶ U)
:
@[simp]
theorem
CategoryTheory.Over.tensorHom_left_fst_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T U : Over X}
(f : R ⟶ S)
(g : T ⟶ U)
{Z : C}
(h : S.left ⟶ Z)
:
@[simp]
theorem
CategoryTheory.Over.tensorHom_left_snd
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T U : Over X}
(f : R ⟶ S)
(g : T ⟶ U)
:
@[simp]
theorem
CategoryTheory.Over.tensorHom_left_snd_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S T U : Over X}
(f : R ⟶ S)
(g : T ⟶ U)
{Z : C}
(h : U.left ⟶ Z)
:
@[simp]
theorem
CategoryTheory.Over.braiding_hom_left
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S : Over X}
:
@[simp]
theorem
CategoryTheory.Over.braiding_inv_left
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasPullbacks C]
{X : C}
{R S : Over X}
: