Documentation

Mathlib.CategoryTheory.Limits.Types.Colimits

Colimits in the category of types #

We show that the category of types has all colimits, by providing the usual concrete models.

If F : J ⥤ Type u, then the data of a "type-theoretic" cocone of F with a point in Type u is the same as the data of a cocone (in a categorical sense).

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem CategoryTheory.Functor.coconeTypesEquiv_apply_ι_app {J : Type v} [Category.{w, v} J] (F : Functor J (Type u)) (c : F.CoconeTypes) (j : J) (a✝ : F.obj j) :
    (F.coconeTypesEquiv c).ι.app j a✝ = c.ι j a✝
    @[simp]
    theorem CategoryTheory.Functor.coconeTypesEquiv_symm_apply_ι {J : Type v} [Category.{w, v} J] (F : Functor J (Type u)) (c : Limits.Cocone F) (j : J) (a✝ : F.obj j) :
    (F.coconeTypesEquiv.symm c).ι j a✝ = c.ι.app j a✝
    @[reducible, inline]

    (internal implementation) the colimit cocone of a functor, implemented as a quotient of a sigma type

    Equations
    Instances For

      (internal implementation) the fact that the proposed colimit cocone is the colimit

      Equations
      Instances For
        @[instance 1300]

        The category of types has all colimits.

        @[reducible, inline]

        (internal implementation) the colimit cocone of a functor, implemented as a quotient of a sigma type

        Equations
        Instances For

          (internal implementation) the fact that the proposed colimit cocone is the colimit

          Equations
          Instances For

            The equivalence between the abstract colimit of F in Type u and the "concrete" definition as a quotient.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem CategoryTheory.Limits.Types.Colimit.w_apply {J : Type v} [Category.{w, v} J] {F : Functor J (Type u)} [HasColimit F] {j j' : J} {x : F.obj j} (f : j j') :
              colimit.ι F j' (F.map f x) = colimit.ι F j x
              @[simp]
              theorem CategoryTheory.Limits.Types.Colimit.ι_desc_apply {J : Type v} [Category.{w, v} J] (F : Functor J (Type u)) [HasColimit F] (s : Cocone F) (j : J) (x : F.obj j) :
              colimit.desc F s (colimit.ι F j x) = s.ι.app j x
              @[simp]
              theorem CategoryTheory.Limits.Types.Colimit.ι_map_apply {J : Type v} [Category.{w, v} J] {F G : Functor J (Type u)} [HasColimitsOfShape J (Type u)] (α : F G) (j : J) (x : F.obj j) :
              colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x)
              @[deprecated CategoryTheory.Limits.Types.Colimit.w_apply (since := "2025-08-22")]
              theorem CategoryTheory.Limits.Types.Colimit.w_apply' {J : Type v} [Category.{w, v} J] {F : Functor J (Type u)} [HasColimit F] {j j' : J} {x : F.obj j} (f : j j') :
              colimit.ι F j' (F.map f x) = colimit.ι F j x

              Alias of CategoryTheory.Limits.Types.Colimit.w_apply.

              @[deprecated CategoryTheory.Limits.Types.Colimit.ι_desc_apply (since := "2025-08-22")]
              theorem CategoryTheory.Limits.Types.Colimit.ι_desc_apply' {J : Type v} [Category.{w, v} J] (F : Functor J (Type u)) [HasColimit F] (s : Cocone F) (j : J) (x : F.obj j) :
              colimit.desc F s (colimit.ι F j x) = s.ι.app j x

              Alias of CategoryTheory.Limits.Types.Colimit.ι_desc_apply.

              @[deprecated CategoryTheory.Limits.Types.Colimit.ι_map_apply (since := "2025-08-22")]
              theorem CategoryTheory.Limits.Types.Colimit.ι_map_apply' {J : Type v} [Category.{w, v} J] {F G : Functor J (Type u)} [HasColimitsOfShape J (Type u)] (α : F G) (j : J) (x : F.obj j) :
              colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x)

              Alias of CategoryTheory.Limits.Types.Colimit.ι_map_apply.

              theorem CategoryTheory.Limits.Types.colimit_sound {J : Type v} [Category.{w, v} J] {F : Functor J (Type u)} [HasColimit F] {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j j') (w : F.map f x = x') :
              colimit.ι F j x = colimit.ι F j' x'
              theorem CategoryTheory.Limits.Types.colimit_sound' {J : Type v} [Category.{w, v} J] {F : Functor J (Type u)} [HasColimit F] {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J} (f : j j'') (f' : j' j'') (w : F.map f x = F.map f' x') :
              colimit.ι F j x = colimit.ι F j' x'
              theorem CategoryTheory.Limits.Types.colimit_eq {J : Type v} [Category.{w, v} J] {F : Functor J (Type u)} [HasColimit F] {j j' : J} {x : F.obj j} {x' : F.obj j'} (w : colimit.ι F j x = colimit.ι F j' x') :
              theorem CategoryTheory.Limits.Types.jointly_surjective_of_isColimit {J : Type v} [Category.{w, v} J] {F : Functor J (Type u)} {t : Cocone F} (h : IsColimit t) (x : t.pt) :
              ∃ (j : J) (y : F.obj j), t.ι.app j y = x
              theorem CategoryTheory.Limits.Types.jointly_surjective {J : Type v} [Category.{w, v} J] (F : Functor J (Type u)) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
              ∃ (j : J) (y : F.obj j), t.ι.app j y = x
              theorem CategoryTheory.Limits.Types.jointly_surjective' {J : Type v} [Category.{w, v} J] {F : Functor J (Type u)} [HasColimit F] (x : colimit F) :
              ∃ (j : J) (y : F.obj j), colimit.ι F j y = x

              A variant of jointly_surjective for x : colimit F.

              If a colimit is nonempty, also its index category is nonempty.