Documentation

Mathlib.CategoryTheory.Limits.ConcreteCategory.Basic

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

The forgetful functor on Type u is the identity; copy the instances on 𝟭 (Type u) over to forget (Type u).

Since instance synthesis only looks through reducible definitions, we need to help it out by copying over the instances that wouldn't be found otherwise.

theorem CategoryTheory.Limits.Concrete.small_sections_of_hasLimit {C : Type u} [Category.{v, u} C] {FC : outParam (CCType u_1)} {CC : outParam (CType v)} [outParam ((X Y : C) → FunLike (FC X Y) (CC X) (CC Y))] [ConcreteCategory C FC] [(forget C).IsCorepresentable] {J : Type w} [Category.{t, w} J] (G : Functor J C) [HasLimit G] :

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] {FC : CCType u_1} {CC : CType r} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {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 : ToType D.pt) (j : J) => (ConcreteCategory.hom (D.π.app j)) x
theorem CategoryTheory.Limits.Concrete.isLimit_ext {C : Type u} [Category.{v, u} C] {FC : CCType u_1} {CC : CType r} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {J : Type w} [Category.{t, w} J] (F : Functor J C) [PreservesLimit F (forget C)] {D : Cone F} (hD : IsLimit D) (x y : ToType D.pt) :
(∀ (j : J), (ConcreteCategory.hom (D.π.app j)) x = (ConcreteCategory.hom (D.π.app j)) y)x = y
theorem CategoryTheory.Limits.Concrete.limit_ext {C : Type u} [Category.{v, u} C] {FC : CCType u_1} {CC : CType r} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {J : Type w} [Category.{t, w} J] (F : Functor J C) [PreservesLimit F (forget C)] [HasLimit F] (x y : ToType (limit F)) :
(∀ (j : J), (ConcreteCategory.hom (limit.π F j)) x = (ConcreteCategory.hom (limit.π F j)) y)x = y
theorem CategoryTheory.Limits.Concrete.surjective_π_app_zero_of_surjective_map {C : Type u} [Category.{v, u} C] {FC : CCType u_2} {CC : CType v} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] [PreservesLimitsOfShape ᵒᵖ (forget C)] {F : Functor ᵒᵖ C} {c : Cone F} (hc : IsLimit c) (hF : ∀ (n : ), Function.Surjective (ConcreteCategory.hom (F.map (homOfLE ).op))) :

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] {FC : CCType u_1} {CC : CType t} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] {D : Cocone F} (hD : IsColimit D) :
have ff := fun (a : (j : J) × ToType (F.obj j)) => (ConcreteCategory.hom (D.ι.app a.fst)) a.snd; Function.Surjective ff
theorem CategoryTheory.Limits.Concrete.isColimit_exists_rep {C : Type u} [Category.{v, u} C] {FC : CCType u_1} {CC : CType t} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] {D : Cocone F} (hD : IsColimit D) (x : ToType D.pt) :
∃ (j : J) (y : ToType (F.obj j)), (ConcreteCategory.hom (D.ι.app j)) y = x
theorem CategoryTheory.Limits.Concrete.colimit_exists_rep {C : Type u} [Category.{v, u} C] {FC : CCType u_1} {CC : CType t} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] [HasColimit F] (x : ToType (colimit F)) :
∃ (j : J) (y : ToType (F.obj j)), (ConcreteCategory.hom (colimit.ι F j)) y = x
theorem CategoryTheory.Limits.Concrete.isColimit_rep_eq_of_exists {C : Type u} [Category.{v, u} C] {FC : CCType u_1} {CC : CType t} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {J : Type w} [Category.{r, w} J] (F : Functor J C) {D : Cocone F} {i j : J} (x : ToType (F.obj i)) (y : ToType (F.obj j)) (h : ∃ (k : J) (f : i k) (g : j k), (ConcreteCategory.hom (F.map f)) x = (ConcreteCategory.hom (F.map g)) y) :
theorem CategoryTheory.Limits.Concrete.colimit_rep_eq_of_exists {C : Type u} [Category.{v, u} C] {FC : CCType u_1} {CC : CType t} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {J : Type w} [Category.{r, w} J] (F : Functor J C) [HasColimit F] {i j : J} (x : ToType (F.obj i)) (y : ToType (F.obj j)) (h : ∃ (k : J) (f : i k) (g : j k), (ConcreteCategory.hom (F.map f)) x = (ConcreteCategory.hom (F.map g)) y) :
theorem CategoryTheory.Limits.Concrete.isColimit_exists_of_rep_eq {C : Type u} [Category.{v, u} C] {FC : CCType u_1} {CC : CType s} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {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 : ToType (F.obj i)) (y : ToType (F.obj j)) (h : (ConcreteCategory.hom (D.ι.app i)) x = (ConcreteCategory.hom (D.ι.app j)) y) :
∃ (k : J) (f : i k) (g : j k), (ConcreteCategory.hom (F.map f)) x = (ConcreteCategory.hom (F.map g)) y
theorem CategoryTheory.Limits.Concrete.isColimit_rep_eq_iff_exists {C : Type u} [Category.{v, u} C] {FC : CCType u_1} {CC : CType s} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {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 : ToType (F.obj i)) (y : ToType (F.obj j)) :
(ConcreteCategory.hom (D.ι.app i)) x = (ConcreteCategory.hom (D.ι.app j)) y ∃ (k : J) (f : i k) (g : j k), (ConcreteCategory.hom (F.map f)) x = (ConcreteCategory.hom (F.map g)) y
theorem CategoryTheory.Limits.Concrete.colimit_exists_of_rep_eq {C : Type u} [Category.{v, u} C] {FC : CCType u_1} {CC : CType s} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] [IsFiltered J] [HasColimit F] {i j : J} (x : ToType (F.obj i)) (y : ToType (F.obj j)) (h : (ConcreteCategory.hom (colimit.ι F i)) x = (ConcreteCategory.hom (colimit.ι F j)) y) :
∃ (k : J) (f : i k) (g : j k), (ConcreteCategory.hom (F.map f)) x = (ConcreteCategory.hom (F.map g)) y
theorem CategoryTheory.Limits.Concrete.colimit_rep_eq_iff_exists {C : Type u} [Category.{v, u} C] {FC : CCType u_1} {CC : CType s} [(X Y : C) → FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory C FC] {J : Type w} [Category.{r, w} J] (F : Functor J C) [PreservesColimit F (forget C)] [IsFiltered J] [HasColimit F] {i j : J} (x : ToType (F.obj i)) (y : ToType (F.obj j)) :
(ConcreteCategory.hom (colimit.ι F i)) x = (ConcreteCategory.hom (colimit.ι F j)) y ∃ (k : J) (f : i k) (g : j k), (ConcreteCategory.hom (F.map f)) x = (ConcreteCategory.hom (F.map g)) y