# mathlibdocumentation

category_theory.limits.shapes.terminal

# Initial and terminal objects in a category.

## References

@[simp]
theorem category_theory.limits.as_empty_cone_π_app {C : Type u} (X : C)  :
= category_theory.limits.as_empty_cone._aux_1 X X_1

@[simp]
theorem category_theory.limits.as_empty_cone_X {C : Type u} (X : C) :

Construct a cone for the empty diagram given an object.

Equations
@[simp]
theorem category_theory.limits.as_empty_cocone_X {C : Type u} (X : C) :

Construct a cocone for the empty diagram given an object.

Equations
@[simp]
theorem category_theory.limits.as_empty_cocone_ι_app {C : Type u} (X : C)  :
= category_theory.limits.as_empty_cocone._aux_1 X X_1

def category_theory.limits.is_terminal {C : Type u}  :
C → Type (max u v)

X is terminal if the cone it induces on the empty diagram is limiting.

def category_theory.limits.is_initial {C : Type u}  :
C → Type (max u v)

X is initial if the cocone it induces on the empty diagram is colimiting.

def category_theory.limits.is_terminal.from {C : Type u} {X : C} (Y : C) :
Y X

Give the morphism to a terminal object from any other.

Equations
theorem category_theory.limits.is_terminal.hom_ext {C : Type u} {X Y : C} (f g : Y X) :
f = g

Any two morphisms to a terminal object are equal.

def category_theory.limits.is_initial.to {C : Type u} {X : C} (Y : C) :
X Y

Give the morphism from an initial object to any other.

Equations
theorem category_theory.limits.is_initial.hom_ext {C : Type u} {X Y : C} (f g : X Y) :
f = g

Any two morphisms from an initial object are equal.

theorem category_theory.limits.is_terminal.mono_from {C : Type u} {X Y : C} (f : X Y) :

Any morphism from a terminal object is mono.

theorem category_theory.limits.is_initial.epi_to {C : Type u} {X Y : C} (f : Y X) :

Any morphism to an initial object is epi.

def category_theory.limits.has_terminal (C : Type u)  :
Prop

A category has a terminal object if it has a limit over the empty diagram. Use has_terminal_of_unique to construct instances.

def category_theory.limits.has_initial (C : Type u)  :
Prop

A category has an initial object if it has a colimit over the empty diagram. Use has_initial_of_unique to construct instances.

Instances
def category_theory.limits.terminal (C : Type u)  :
C

An arbitrary choice of terminal object, if one exists. You can use the notation ⊤_ C. This object is characterized by having a unique morphism from any object.

def category_theory.limits.initial (C : Type u)  :
C

An arbitrary choice of initial object, if one exists. You can use the notation ⊥_ C. This object is characterized by having a unique morphism to any object.

theorem category_theory.limits.has_terminal_of_unique {C : Type u} (X : C) [h : Π (Y : C), unique (Y X)] :

We can more explicitly show that a category has a terminal object by specifying the object, and showing there is a unique morphism to it from any other object.

theorem category_theory.limits.has_initial_of_unique {C : Type u} (X : C) [h : Π (Y : C), unique (X Y)] :

We can more explicitly show that a category has an initial object by specifying the object, and showing there is a unique morphism from it to any other object.

def category_theory.limits.terminal.from {C : Type u} (P : C) :

The map from an object to the terminal object.

def category_theory.limits.initial.to {C : Type u} (P : C) :

The map to an object from the initial object.

@[instance]
def category_theory.limits.unique_to_terminal {C : Type u} (P : C) :

Equations
@[instance]
def category_theory.limits.unique_from_initial {C : Type u} (P : C) :

Equations

A terminal object is terminal.

Equations

An initial object is initial.

Equations
@[instance]
def category_theory.limits.terminal.mono_from {C : Type u} {Y : C} (f : ⊤_C Y) :

Any morphism from a terminal object is mono.

@[instance]
def category_theory.limits.initial.epi_to {C : Type u} {Y : C} (f : Y ⊥_C) :

Any morphism to an initial object is epi.

def category_theory.limits.terminal_op_of_initial {C : Type u} {X : C} :

An initial object is terminal in the opposite category.

Equations

An initial object in the opposite category is terminal in the original category.

Equations
def category_theory.limits.initial_op_of_terminal {C : Type u} {X : C} :

A terminal object is initial in the opposite category.

Equations

A terminal object in the opposite category is initial in the original category.

Equations
def category_theory.limits.cone_of_diagram_initial {C : Type u} {J : Type v} {X : J} (F : J C) :

From a functor F : J ⥤ C, given an initial object of J, construct a cone for J. In limit_of_diagram_initial we show it is a limit cone.

Equations
@[simp]
theorem category_theory.limits.cone_of_diagram_initial_π_app {C : Type u} {J : Type v} {X : J} (F : J C) (j : J) :
= F.map (tX.to j)

@[simp]
theorem category_theory.limits.cone_of_diagram_initial_X {C : Type u} {J : Type v} {X : J} (F : J C) :

def category_theory.limits.limit_of_diagram_initial {C : Type u} {J : Type v} {X : J} (F : J C) :

From a functor F : J ⥤ C, given an initial object of J, show the cone cone_of_diagram_initial is a limit.

Equations
def category_theory.limits.limit_of_initial {C : Type u} {J : Type v} (F : J C)  :

For a functor F : J ⥤ C, if J has an initial object then the image of it is isomorphic to the limit of F.

Equations
@[simp]
theorem category_theory.limits.cocone_of_diagram_terminal_ι_app {C : Type u} {J : Type v} {X : J} (F : J C) (j : J) :
= F.map (tX.from j)

def category_theory.limits.cocone_of_diagram_terminal {C : Type u} {J : Type v} {X : J} (F : J C) :

From a functor F : J ⥤ C, given a terminal object of J, construct a cocone for J. In colimit_of_diagram_terminal we show it is a colimit cocone.

Equations
@[simp]
theorem category_theory.limits.cocone_of_diagram_terminal_X {C : Type u} {J : Type v} {X : J} (F : J C) :

def category_theory.limits.colimit_of_diagram_terminal {C : Type u} {J : Type v} {X : J} (F : J C) :

From a functor F : J ⥤ C, given a terminal object of J, show the cocone cocone_of_diagram_terminal is a colimit.

Equations
def category_theory.limits.colimit_of_terminal {C : Type u} {J : Type v} (F : J C)  :

For a functor F : J ⥤ C, if J has a terminal object then the image of it is isomorphic to the colimit of F.

Equations