The category of bipointed types #
This defines Bipointed
, the category of bipointed types.
TODO #
Monoidal structure
Equations
- Bipointed.instCoeSortBipointedType = { coe := Bipointed.X }
Turns a bipointing into a bipointed type.
Equations
- Bipointed.of to_prod = { X := X, toProd := to_prod }
Instances For
@[simp]
Equations
- Bipointed.instInhabitedBipointed = { default := Bipointed.of ((), ()) }
theorem
Bipointed.Hom.ext
{X : Bipointed}
{Y : Bipointed}
(x : Bipointed.Hom X Y)
(y : Bipointed.Hom X Y)
(toFun : x.toFun = y.toFun)
:
x = y
theorem
Bipointed.Hom.ext_iff
{X : Bipointed}
{Y : Bipointed}
(x : Bipointed.Hom X Y)
(y : Bipointed.Hom X Y)
:
@[simp]
Equations
- Bipointed.Hom.instInhabitedHom X = { default := Bipointed.Hom.id X }
@[simp]
theorem
Bipointed.Hom.comp_toFun
{X : Bipointed}
{Y : Bipointed}
{Z : Bipointed}
(f : Bipointed.Hom X Y)
(g : Bipointed.Hom Y Z)
:
∀ (a : X.X), (Bipointed.Hom.comp f g).toFun a = (g.toFun ∘ f.toFun) a
def
Bipointed.Hom.comp
{X : Bipointed}
{Y : Bipointed}
{Z : Bipointed}
(f : Bipointed.Hom X Y)
(g : Bipointed.Hom Y Z)
:
Bipointed.Hom X Z
Composition of morphisms of Bipointed
.
Equations
Instances For
Equations
- Bipointed.largeCategory = CategoryTheory.Category.mk
@[simp]
theorem
Bipointed.swap_map_toFun :
∀ {X Y : Bipointed} (f : X ⟶ Y) (a : X.X), (Bipointed.swap.toPrefunctor.map f).toFun a = f.toFun a
@[simp]
@[simp]
theorem
Bipointed.swap_obj_toProd
(X : Bipointed)
:
(Bipointed.swap.toPrefunctor.obj X).toProd = Prod.swap X.toProd
Swaps the pointed elements of a bipointed type. Prod.swap
as a functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Bipointed.swapEquiv_functor_obj_toProd
(X : Bipointed)
:
(Bipointed.swapEquiv.functor.toPrefunctor.obj X).toProd = Prod.swap X.toProd
@[simp]
theorem
Bipointed.swapEquiv_unitIso_inv_app_toFun
(X : Bipointed)
:
∀ (a : ((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj X).X),
(Bipointed.swapEquiv.unitIso.inv.app X).toFun a = (CategoryTheory.CategoryStruct.comp
(Bipointed.swap.toPrefunctor.map
(Bipointed.swap.toPrefunctor.map
{ toFun := id,
map_fst :=
(_ :
id ((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj X).toProd.1 = id ((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj X).toProd.1),
map_snd :=
(_ :
id ((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj X).toProd.2 = id ((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj X).toProd.2) }))
(CategoryTheory.CategoryStruct.comp
(Bipointed.swap.toPrefunctor.map
{ toFun := id,
map_fst :=
(_ :
id
((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj
(Bipointed.swap.toPrefunctor.obj X)).toProd.1 = id
((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj
(Bipointed.swap.toPrefunctor.obj X)).toProd.1),
map_snd :=
(_ :
id
((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj
(Bipointed.swap.toPrefunctor.obj X)).toProd.2 = id
((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj
(Bipointed.swap.toPrefunctor.obj X)).toProd.2) })
{ toFun := id,
map_fst :=
(_ :
id ((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj X).toProd.1 = id ((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj X).toProd.1),
map_snd :=
(_ :
id ((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj X).toProd.2 = id
((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj
X).toProd.2) })).toFun
((CategoryTheory.CategoryStruct.id (Bipointed.swap.toPrefunctor.obj (Bipointed.swap.toPrefunctor.obj X))).toFun a)
@[simp]
theorem
Bipointed.swapEquiv_functor_map_toFun :
∀ {X Y : Bipointed} (f : X ⟶ Y) (a : X.X), (Bipointed.swapEquiv.functor.toPrefunctor.map f).toFun a = f.toFun a
@[simp]
theorem
Bipointed.swapEquiv_inverse_obj_toProd
(X : Bipointed)
:
(Bipointed.swapEquiv.inverse.toPrefunctor.obj X).toProd = Prod.swap X.toProd
@[simp]
theorem
Bipointed.swapEquiv_functor_obj_X
(X : Bipointed)
:
(Bipointed.swapEquiv.functor.toPrefunctor.obj X).X = X.X
@[simp]
theorem
Bipointed.swapEquiv_unitIso_hom_app_toFun
(X : Bipointed)
:
∀ (a : ((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj X).X),
(Bipointed.swapEquiv.unitIso.hom.app X).toFun a = (CategoryTheory.CategoryStruct.id (Bipointed.swap.toPrefunctor.obj (Bipointed.swap.toPrefunctor.obj X))).toFun
((CategoryTheory.CategoryStruct.comp
{ toFun := id,
map_fst :=
(_ :
id ((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj X).toProd.1 = id ((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj X).toProd.1),
map_snd :=
(_ :
id ((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj X).toProd.2 = id ((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj X).toProd.2) }
(CategoryTheory.CategoryStruct.comp
(Bipointed.swap.toPrefunctor.map
{ toFun := id,
map_fst :=
(_ :
id
((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj
(Bipointed.swap.toPrefunctor.obj X)).toProd.1 = id
((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj
(Bipointed.swap.toPrefunctor.obj X)).toProd.1),
map_snd :=
(_ :
id
((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj
(Bipointed.swap.toPrefunctor.obj X)).toProd.2 = id
((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj
(Bipointed.swap.toPrefunctor.obj X)).toProd.2) })
(Bipointed.swap.toPrefunctor.map
(Bipointed.swap.toPrefunctor.map
{ toFun := id,
map_fst :=
(_ :
id ((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj X).toProd.1 = id ((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj X).toProd.1),
map_snd :=
(_ :
id ((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj X).toProd.2 = id
((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj
X).toProd.2) })))).toFun
a)
@[simp]
theorem
Bipointed.swapEquiv_counitIso_inv_app_toFun
(X : Bipointed)
(a : ((CategoryTheory.Functor.id Bipointed).toPrefunctor.obj X).X)
:
(Bipointed.swapEquiv.counitIso.inv.app X).toFun a = a
@[simp]
theorem
Bipointed.swapEquiv_counitIso_hom_app_toFun
(X : Bipointed)
(a : ((CategoryTheory.Functor.comp Bipointed.swap Bipointed.swap).toPrefunctor.obj X).X)
:
(Bipointed.swapEquiv.counitIso.hom.app X).toFun a = a
@[simp]
theorem
Bipointed.swapEquiv_inverse_map_toFun :
∀ {X Y : Bipointed} (f : X ⟶ Y) (a : X.X), (Bipointed.swapEquiv.inverse.toPrefunctor.map f).toFun a = f.toFun a
@[simp]
theorem
Bipointed.swapEquiv_inverse_obj_X
(X : Bipointed)
:
(Bipointed.swapEquiv.inverse.toPrefunctor.obj X).X = X.X
@[simp]
theorem
pointedToBipointedCompBipointedToPointedFst_inv_app_toFun
(X : Pointed)
(a : ((CategoryTheory.Functor.id Pointed).toPrefunctor.obj X).X)
:
(pointedToBipointedCompBipointedToPointedFst.inv.app X).toFun a = a
@[simp]
theorem
pointedToBipointedCompBipointedToPointedFst_hom_app_toFun
(X : Pointed)
(a : ((CategoryTheory.Functor.comp pointedToBipointed bipointedToPointedFst).toPrefunctor.obj X).X)
:
(pointedToBipointedCompBipointedToPointedFst.hom.app X).toFun a = a
BipointedToPointed_fst
is inverse to PointedToBipointed
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
pointedToBipointedCompBipointedToPointedSnd_hom_app_toFun
(X : Pointed)
(a : ((CategoryTheory.Functor.comp pointedToBipointed bipointedToPointedSnd).toPrefunctor.obj X).X)
:
(pointedToBipointedCompBipointedToPointedSnd.hom.app X).toFun a = a
@[simp]
theorem
pointedToBipointedCompBipointedToPointedSnd_inv_app_toFun
(X : Pointed)
(a : ((CategoryTheory.Functor.id Pointed).toPrefunctor.obj X).X)
:
(pointedToBipointedCompBipointedToPointedSnd.inv.app X).toFun a = a
BipointedToPointed_snd
is inverse to PointedToBipointed
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The free/forgetful adjunction between PointedToBipointed_fst
and BipointedToPointed_fst
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The free/forgetful adjunction between PointedToBipointed_snd
and BipointedToPointed_snd
.
Equations
- One or more equations did not get rendered due to their size.