Documentation

Mathlib.CategoryTheory.Functor.Flat

Representably flat functors #

We define representably flat functors as functors such that the category of structured arrows over X is cofiltered for each X. This concept is also known as flat functors as in [Joh02] Remark C2.3.7, and this name is suggested by Mike Shulman in https://golem.ph.utexas.edu/category/2011/06/flat_functors_and_morphisms_of.html to avoid confusion with other notions of flatness.

This definition is equivalent to left exact functors (functors that preserves finite limits) when C has all finite limits.

Main results #

A functor F : C ⥤ D is representably flat if the comma category (X/F) is cofiltered for each X : D.

Instances

    A functor F : C ⥤ D is representably coflat if the comma category (F/X) is filtered for each X : D.

    Instances

      Being a representably flat functor is closed under natural isomorphisms.

      noncomputable def CategoryTheory.PreservesFiniteLimitsOfFlat.lift {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type v₁} [SmallCategory J] [FinCategory J] {K : Functor J C} (F : Functor C D) [RepresentablyFlat F] {c : Limits.Cone K} (hc : Limits.IsLimit c) (s : Limits.Cone (K.comp F)) :
      s.pt F.obj c.pt

      (Implementation). Given a limit cone c : cone K and a cone s : cone (K ⋙ F) with F representably flat, s can factor through F.mapCone c.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem CategoryTheory.PreservesFiniteLimitsOfFlat.fac {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type v₁} [SmallCategory J] [FinCategory J] {K : Functor J C} (F : Functor C D) [RepresentablyFlat F] {c : Limits.Cone K} (hc : Limits.IsLimit c) (s : Limits.Cone (K.comp F)) (x : J) :
        CategoryStruct.comp (lift F hc s) ((F.mapCone c).app x) = s.app x
        theorem CategoryTheory.PreservesFiniteLimitsOfFlat.uniq {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {J : Type v₁} [SmallCategory J] [FinCategory J] (F : Functor C D) [RepresentablyFlat F] {K : Functor J C} {c : Limits.Cone K} (hc : Limits.IsLimit c) (s : Limits.Cone (K.comp F)) (f₁ f₂ : s.pt F.obj c.pt) (h₁ : ∀ (j : J), CategoryStruct.comp f₁ ((F.mapCone c).app j) = s.app j) (h₂ : ∀ (j : J), CategoryStruct.comp f₂ ((F.mapCone c).app j) = s.app j) :
        f₁ = f₂

        Representably flat functors preserve finite limits.

        Representably coflat functors preserve finite colimits.

        If C is finitely complete, then F : C ⥤ D is representably flat iff it preserves finite limits.

        If C is finitely cocomplete, then F : C ⥤ D is representably coflat iff it preserves finite colmits.

        noncomputable def CategoryTheory.lanEvaluationIsoColim {C D : Type u₁} [SmallCategory C] [SmallCategory D] (E : Type u₂) [Category.{u₁, u₂} E] (F : Functor C D) (X : D) [∀ (X : D), Limits.HasColimitsOfShape (CostructuredArrow F X) E] :
        F.lan.comp ((evaluation D E).obj X) ((whiskeringLeft (CostructuredArrow F X) C E).obj (CostructuredArrow.proj F X)).comp Limits.colim

        (Implementation) The evaluation of F.lan at X is the colimit over the costructured arrows over X.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          If F : C ⥤ D is a representably flat functor between small categories, then the functor Lan F.op that takes presheaves over C to presheaves over D preserves finite limits.

          If C is finitely complete, then F : C ⥤ D preserves finite limits iff Lan F.op : (Cᵒᵖ ⥤ Type*) ⥤ (Dᵒᵖ ⥤ Type*) preserves finite limits.