mathlib documentation

category_theory.limits.shapes.types

Special shapes for limits in Type.

The general shape (co)limits defined in category_theory.limits.types are intended for use through the limits API, and the actual implementation should mostly be considered "sealed".

In this file, we provide definitions of the "standard" special shapes of limits in Type, giving the expected definitional implementation:

Because these are not intended for use with the has_limit API, we instead construct terms of limit_data.

As an example, when setting up the monoidal category structure on Type we use the types_has_terminal and types_has_binary_products instances.

@[simp]
theorem category_theory.limits.types.pi_lift_π_apply {β : Type u} (f : β → Type u) {P : Type u} (s : Π (b : β), P f b) (b : β) (x : P) :

A restatement of types.lift_π_apply that uses pi.π and pi.lift.

@[simp]
theorem category_theory.limits.types.pi_map_π_apply {β : Type u} {f g : β → Type u} (α : Π (j : β), f j g j) (b : β) (x : λ (j : β), f j) :

A restatement of types.map_π_apply that uses pi.π and pi.map.

The category of types has punit as a terminal object.

Equations

The category of types has pempty as an initial object.

Equations

The product type X × Y is a binary product for X and Y.

Equations

The functor which sends X, Y to the product type X × Y.

Equations

The product functor given by the instance has_binary_products (Type u) is isomorphic to the explicit binary product functor given by the product type.

Equations

The category of types has Π j, f j as the product of a type family f : J → Type.

Equations

The category of types has Σ j, f j as the coproduct of a type family f : J → Type.

Equations
def category_theory.limits.types.type_equalizer_of_unique {X Y Z : Type u} (f : X Y) {g h : Y Z} (w : f g = f h) (t : ∀ (y : Y), g y = h y(∃! (x : X), f x = y)) :

Show the given fork in Type u is an equalizer given that any element in the "difference kernel" comes from X. The converse of unique_of_type_equalizer.

Equations
theorem category_theory.limits.types.unique_of_type_equalizer {X Y Z : Type u} (f : X Y) {g h : Y Z} (w : f g = f h) (t : category_theory.limits.is_limit (category_theory.limits.fork.of_ι f w)) (y : Y) (hy : g y = h y) :
∃! (x : X), f x = y

The converse of type_equalizer_of_unique.

theorem category_theory.limits.types.type_equalizer_iff_unique {X Y Z : Type u} (f : X Y) {g h : Y Z} (w : f g = f h) :
nonempty (category_theory.limits.is_limit (category_theory.limits.fork.of_ι f w)) ∀ (y : Y), g y = h y(∃! (x : X), f x = y)

Show that the subtype {x : Y // g x = h x} is an equalizer for the pair (g,h).

Equations