File: Mathlib/CategoryTheory/Category/Pointed.lean

full_name: Pointed
code: /-- The category of pointed types. -/
structure Pointed : Type (u + 1) where
  /-- the underlying type -/
  X : Type u
  /-- the distinguished element -/
  point : X
goal: Type (u + 1)

full_name: Pointed.point
code: /-- The category of pointed types. -/
structure Pointed : Type (u + 1) where
  /-- the underlying type -/
  X : Type u
  /-- the distinguished element -/
  point : X
goal: self.X

full_name: Pointed.X
code: /-- The category of pointed types. -/
structure Pointed : Type (u + 1) where
  /-- the underlying type -/
  X : Type u
  /-- the distinguished element -/
  point : X
goal: Type u

full_name: Pointed.instCoeSortType
code: instance : CoeSort Pointed Type* 
goal: CoeSort Pointed (Type u_3)

full_name: Pointed.of
code: /-- Turns a point into a pointed type. -/
def of {X : Type*} (point : X) : Pointed 
goal: Pointed

full_name: Pointed.coe_of
code: @[simp]
theorem coe_of {X : Type*} (point : X) : ↥(of point) = X 
goal: (Pointed.of point).X = X

full_name: Pointed.instInhabited
code: instance : Inhabited Pointed 
goal: Inhabited Pointed

full_name: Pointed.Hom
code: /-- Morphisms in `Pointed`. -/
@[ext]
protected structure Hom (X Y : Pointed.{u}) : Type u where
  /-- the underlying map -/
  toFun : X → Y
  /-- compatibility with the distinguished points -/
  map_point : toFun X.point = Y.point
goal: Type u

full_name: Pointed.Hom.toFun
code: /-- Morphisms in `Pointed`. -/
@[ext]
protected structure Hom (X Y : Pointed.{u}) : Type u where
  /-- the underlying map -/
  toFun : X → Y
  /-- compatibility with the distinguished points -/
  map_point : toFun X.point = Y.point
goal: X.X → Y.X

full_name: Pointed.Hom.map_point
code: /-- Morphisms in `Pointed`. -/
@[ext]
protected structure Hom (X Y : Pointed.{u}) : Type u where
  /-- the underlying map -/
  toFun : X → Y
  /-- compatibility with the distinguished points -/
  map_point : toFun X.point = Y.point
goal: self.toFun X.point = Y.point

full_name: Pointed.Hom.id
code: /-- The identity morphism of `X : Pointed`. -/
@[simps]
def id (X : Pointed) : Pointed.Hom X X 
goal: X.Hom X

full_name: Pointed.Hom.id_toFun
code: /-- The identity morphism of `X : Pointed`. -/
@[simps]
def id (X : Pointed) : Pointed.Hom X X 
goal: (Pointed.Hom.id X).toFun a = id a

full_name: Pointed.Hom.instInhabited
code: instance (X : Pointed) : Inhabited (Pointed.Hom X X) 
goal: Inhabited (X.Hom X)

full_name: Pointed.Hom.comp
code: /-- Composition of morphisms of `Pointed`. -/
@[simps]
def comp {X Y Z : Pointed.{u}} (f : Pointed.Hom X Y) (g : Pointed.Hom Y Z) : Pointed.Hom X Z 
goal: X.Hom Z

full_name: Pointed.Hom.comp_toFun
code: /-- Composition of morphisms of `Pointed`. -/
@[simps]
def comp {X Y Z : Pointed.{u}} (f : Pointed.Hom X Y) (g : Pointed.Hom Y Z) : Pointed.Hom X Z 
goal: ∀ (a : X.X), (f.comp g).toFun a = (g.toFun ∘ f.toFun) a

full_name: Pointed.largeCategory
code: instance largeCategory : LargeCategory Pointed 
goal: CategoryTheory.LargeCategory Pointed

full_name: Pointed.Hom.id_toFun'
code: @[simp] lemma Hom.id_toFun' (X : Pointed.{u}) : (𝟙 X : X ⟶ X).toFun = _root_.id 
goal: (𝟙 X).toFun = id

full_name: Pointed.Hom.comp_toFun'
code: @[simp] lemma Hom.comp_toFun' {X Y Z : Pointed.{u}} (f : X ⟶ Y) (g : Y ⟶ Z) :
    (f ≫ g).toFun = g.toFun ∘ f.toFun 
goal: (f ≫ g).toFun = g.toFun ∘ f.toFun

full_name: Pointed.concreteCategory
code: instance concreteCategory : ConcreteCategory Pointed 
goal: CategoryTheory.ConcreteCategory Pointed

full_name: Pointed.Iso.mk_hom_toFun
code: /-- Constructs an isomorphism between pointed types from an equivalence that preserves the point
between them. -/
@[simps]
def Iso.mk {α β : Pointed} (e : α ≃ β) (he : e α.point = β.point) : α ≅ β 
goal: (Pointed.Iso.mk e he).hom.toFun a = e a

full_name: Pointed.Iso.mk
code: /-- Constructs an isomorphism between pointed types from an equivalence that preserves the point
between them. -/
@[simps]
def Iso.mk {α β : Pointed} (e : α ≃ β) (he : e α.point = β.point) : α ≅ β 
goal: α ≅ β

full_name: Pointed.Iso.mk_inv_toFun
code: /-- Constructs an isomorphism between pointed types from an equivalence that preserves the point
between them. -/
@[simps]
def Iso.mk {α β : Pointed} (e : α ≃ β) (he : e α.point = β.point) : α ≅ β 
goal: (Pointed.Iso.mk e he).inv.toFun a = e.symm a

full_name: typeToPointed
code: /-- `Option` as a functor from types to pointed types. This is the free functor. -/
@[simps]
def typeToPointed : Type u ⥤ Pointed.{u} 
goal: Type u ⥤ Pointed

full_name: typeToPointed_obj_X
code: /-- `Option` as a functor from types to pointed types. This is the free functor. -/
@[simps]
def typeToPointed : Type u ⥤ Pointed.{u} 
goal: (typeToPointed.obj X).X = Option X

full_name: typeToPointed_obj_point
code: /-- `Option` as a functor from types to pointed types. This is the free functor. -/
@[simps]
def typeToPointed : Type u ⥤ Pointed.{u} 
goal: (typeToPointed.obj X).point = none

full_name: typeToPointed_map_toFun
code: /-- `Option` as a functor from types to pointed types. This is the free functor. -/
@[simps]
def typeToPointed : Type u ⥤ Pointed.{u} 
goal: ∀ {X Y : Type u} (f : X ⟶ Y) (a : Option X), (typeToPointed.map f).toFun a = Option.map f a

full_name: typeToPointedForgetAdjunction
code: /-- `typeToPointed` is the free functor. -/
def typeToPointedForgetAdjunction : typeToPointed ⊣ forget Pointed 
goal: typeToPointed ⊣ CategoryTheory.forget Pointed