Documentation

Mathlib.CategoryTheory.Limits.ConcreteCategory.Basic

Facts about (co)limits of functors into concrete categories #

theorem CategoryTheory.Limits.Concrete.small_sections_of_hasLimit {C : Type u} [Category.{v, u} C] [HasForget C] [(forget C).IsCorepresentable] {J : Type w} [Category.{t, w} J] (G : Functor J C) [HasLimit G] :
Small.{v, max v w} (G.comp (forget C)).sections

If a functor G : J ⥤ C to a concrete category has a limit and that forget C is corepresentable, then (G ⋙ forget C).sections is small.

theorem CategoryTheory.Limits.Concrete.to_product_injective_of_isLimit {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{t, w} J] (F : Functor J C) [PreservesLimit F (forget C)] {D : Cone F} (hD : IsLimit D) :
Function.Injective fun (x : (forget C).obj D.pt) (j : J) => (D.app j) x
theorem CategoryTheory.Limits.Concrete.isLimit_ext {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{t, w} J] (F : Functor J C) [PreservesLimit F (forget C)] {D : Cone F} (hD : IsLimit D) (x y : (forget C).obj D.pt) :
(∀ (j : J), (D.app j) x = (D.app j) y)x = y
theorem CategoryTheory.Limits.Concrete.limit_ext {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{t, w} J] (F : Functor J C) [PreservesLimit F (forget C)] [HasLimit F] (x y : (forget C).obj (limit F)) :
(∀ (j : J), (limit.π F j) x = (limit.π F j) y)x = y

Given surjections ⋯ ⟶ Xₙ₊₁ ⟶ Xₙ ⟶ ⋯ ⟶ X₀ in a concrete category whose forgetful functor preserves sequential limits, the projection map lim Xₙ ⟶ X₀ is surjective.

theorem CategoryTheory.Limits.Concrete.from_union_surjective_of_isColimit {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] {D : Cocone F} (hD : IsColimit D) :
let ff := fun (a : (j : J) × (forget C).obj (F.obj j)) => (D.app a.fst) a.snd; Function.Surjective ff
theorem CategoryTheory.Limits.Concrete.isColimit_exists_rep {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] {D : Cocone F} (hD : IsColimit D) (x : (forget C).obj D.pt) :
∃ (j : J) (y : (forget C).obj (F.obj j)), (D.app j) y = x
theorem CategoryTheory.Limits.Concrete.colimit_exists_rep {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] [HasColimit F] (x : (forget C).obj (colimit F)) :
∃ (j : J) (y : (forget C).obj (F.obj j)), (colimit.ι F j) y = x
theorem CategoryTheory.Limits.Concrete.isColimit_rep_eq_of_exists {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{r, w} J] (F : Functor J C) {D : Cocone F} {i j : J} (x : (forget C).obj (F.obj i)) (y : (forget C).obj (F.obj j)) (h : ∃ (k : J) (f : i k) (g : j k), (F.map f) x = (F.map g) y) :
(D.app i) x = (D.app j) y
theorem CategoryTheory.Limits.Concrete.colimit_rep_eq_of_exists {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{r, w} J] (F : Functor J C) [HasColimit F] {i j : J} (x : (forget C).obj (F.obj i)) (y : (forget C).obj (F.obj j)) (h : ∃ (k : J) (f : i k) (g : j k), (F.map f) x = (F.map g) y) :
(colimit.ι F i) x = (colimit.ι F j) y
theorem CategoryTheory.Limits.Concrete.isColimit_exists_of_rep_eq {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] [IsFiltered J] {D : Cocone F} {i j : J} (hD : IsColimit D) (x : (forget C).obj (F.obj i)) (y : (forget C).obj (F.obj j)) (h : (D.app i) x = (D.app j) y) :
∃ (k : J) (f : i k) (g : j k), (F.map f) x = (F.map g) y
theorem CategoryTheory.Limits.Concrete.isColimit_rep_eq_iff_exists {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] [IsFiltered J] {D : Cocone F} {i j : J} (hD : IsColimit D) (x : (forget C).obj (F.obj i)) (y : (forget C).obj (F.obj j)) :
(D.app i) x = (D.app j) y ∃ (k : J) (f : i k) (g : j k), (F.map f) x = (F.map g) y
theorem CategoryTheory.Limits.Concrete.colimit_exists_of_rep_eq {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] [IsFiltered J] [HasColimit F] {i j : J} (x : (forget C).obj (F.obj i)) (y : (forget C).obj (F.obj j)) (h : (colimit.ι F i) x = (colimit.ι F j) y) :
∃ (k : J) (f : i k) (g : j k), (F.map f) x = (F.map g) y
theorem CategoryTheory.Limits.Concrete.colimit_rep_eq_iff_exists {C : Type u} [Category.{v, u} C] [HasForget C] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] [IsFiltered J] [HasColimit F] {i j : J} (x : (forget C).obj (F.obj i)) (y : (forget C).obj (F.obj j)) :
(colimit.ι F i) x = (colimit.ι F j) y ∃ (k : J) (f : i k) (g : j k), (F.map f) x = (F.map g) y