The category of pointed types #
This defines Pointed
, the category of pointed types.
TODO #
- Monoidal structure
- Upgrade
typeToPointed
to an equivalence
Equations
- Pointed.instCoeSortType = { coe := Pointed.X }
Turns a point into a pointed type.
Equations
- Pointed.of point = { X := X, point := point }
Instances For
Equations
- Pointed.instInhabited = { default := Pointed.of ((), ()) }
theorem
Pointed.Hom.map_point
{X : Pointed}
{Y : Pointed}
(self : X.Hom Y)
:
self.toFun X.point = Y.point
compatibility with the distinguished points
The identity morphism of X : Pointed
.
Equations
- Pointed.Hom.id X = { toFun := id, map_point := ⋯ }
Instances For
@[simp]
Equations
- Pointed.Hom.instInhabited X = { default := Pointed.Hom.id X }
@[simp]
@[simp]
theorem
Pointed.Hom.comp_toFun'
{X : Pointed}
{Y : Pointed}
{Z : Pointed}
(f : X ⟶ Y)
(g : Y ⟶ Z)
:
(CategoryTheory.CategoryStruct.comp f g).toFun = g.toFun ∘ f.toFun
Equations
- One or more equations did not get rendered due to their size.
Constructs an isomorphism between pointed types from an equivalence that preserves the point between them.
Equations
- Pointed.Iso.mk e he = { hom := { toFun := ⇑e, map_point := he }, inv := { toFun := ⇑e.symm, map_point := ⋯ }, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
@[simp]
theorem
Pointed.Iso.mk_hom_toFun
{α : Pointed}
{β : Pointed}
(e : α.X ≃ β.X)
(he : e α.point = β.point)
(a : α.X)
:
(Pointed.Iso.mk e he).hom.toFun a = e a
@[simp]
theorem
Pointed.Iso.mk_inv_toFun
{α : Pointed}
{β : Pointed}
(e : α.X ≃ β.X)
(he : e α.point = β.point)
(a : β.X)
:
(Pointed.Iso.mk e he).inv.toFun a = e.symm a
Option
as a functor from types to pointed types. This is the free functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
typeToPointed_map_toFun :
∀ {X Y : Type u} (f : X ⟶ Y) (a : Option X), (typeToPointed.map f).toFun a = Option.map f a
typeToPointed
is the free functor.
Equations
- One or more equations did not get rendered due to their size.