Documentation

Mathlib.CategoryTheory.Presentable.Directed

κ-filtered categories and κ-directed poset #

In this file, we formalize the proof by Deligne (SGA 4 I 8.1.6) that for any (small) filtered category J, there exists a final functor F : α ⥤ J where α is a directed partially ordered set (IsFiltered.exists_directed). The construction applies more generally to κ-filtered categories and κ-directed posets (IsCardinalFiltered.exists_cardinal_directed).

Note: the argument by Deligne is reproduced (without reference) in the book by Adámek and Rosický (theorem 1.5), but with a mistake: the construction by Deligne involves considering diagrams (see CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.DiagramWithUniqueTerminal) which are not necessarily subcategories (the class of morphisms W does not have to be multiplicative.)

References #

Let J be a κ-filtered category. In order to construct a cofinal functor α ⥤ J with a κ-directed poset α, we first consider the case where there is no object m : J such that for any object j : J, there exists a map j ⟶ m. Under this assumption (hJ), the partially ordered type DiagramWithUniqueTerminal J κ of κ-bounded diagrams with a unique terminal object in J shall be a possible choice for α.

If κ is a cardinal, this structure contains the data of a κ-bounded diagram in a category J.

Instances For
    theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.ext {J : Type w} {inst✝ : SmallCategory J} {κ : Cardinal.{w}} {x y : Diagram J κ} (W : x.W = y.W) (P : x.P = y.P) :
    x = y

    Given a κ-bounded diagram D in a category J, an object e : J is terminal if 𝟙 e belongs to D and for any object j of D, there is a unique morphism j ⟶ e in D, such that these unique morphisms are compatible with precomposition with morphisms in D.

    Instances For
      theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.IsTerminal.comm_assoc {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} {D : Diagram J κ} {e : J} (self : D.IsTerminal e) {i j : J} (f : i j) (hf : D.W f) {Z : J} (h : e Z) :
      noncomputable def CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.IsTerminal.ofExistsUnique {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} {D : Diagram J κ} {e : J} (prop_id : D.W (CategoryStruct.id e)) (h₁ : ∀ ⦃j : J⦄, D.P j∃ (lift : j e), D.W lift) (h₂ : ∀ ⦃j : J⦄, D.P j∀ (l₁ l₂ : j e), D.W l₁D.W l₂l₁ = l₂) (h₃ : ∀ ⦃i j : J⦄ (f : i j), D.W f∃ (li : i e) (lj : j e), D.W li D.W lj CategoryStruct.comp f lj = li) :

      Constructor for Diagram.IsTerminal for which no data is provided, but only its existence.

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

        If κ is a cardinal, this structure contains the data of a κ-bounded diagram with a unique terminal object in a category J.

        Instances For
          @[simp]
          theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.functorMap_comp {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} {D₁ D₂ D₃ : DiagramWithUniqueTerminal J κ} (h₁₂ : D₁ D₂) (h₂₃ : D₂ D₃) :
          @[simp]
          theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.functorMap_comp_assoc {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} {D₁ D₂ D₃ : DiagramWithUniqueTerminal J κ} (h₁₂ : D₁ D₂) (h₂₃ : D₂ D₃) {Z : J} (h : D₃.top Z) :

          The functor which sends a κ-bounded diagram with a unique terminal object to its terminal object.

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

            The diagram containing a single object (and its identity morphism).

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

              The diagram with a unique terminal object containing a single object (and its identity morphism).

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

                The union of a κ-bounded family of κ-bounded diagrams.

                Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.iSup_W {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] {ι : Type u_1} (D : ιDiagram J κ) ( : HasCardinalLT ι κ) :
                  (iSup D ).W = ⨆ (i : ι), (D i).W
                  @[simp]
                  theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.iSup_P {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] {ι : Type u_1} (D : ιDiagram J κ) ( : HasCardinalLT ι κ) (a✝ : J) :
                  (iSup D ).P a✝ = (⨆ (i : ι), (D i).P) a✝

                  The union of two κ-bounded diagrams.

                  Equations
                  • D₁.sup D₂ = { W := D₁.WD₂.W, P := D₁.PD₂.P, src := , tgt := , hW := , hP := }
                  Instances For
                    @[simp]
                    theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.sup_P {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] (D₁ D₂ : Diagram J κ) (a✝ : J) :
                    (D₁.sup D₂).P a✝ = Max.max D₁.P D₂.P a✝
                    @[simp]
                    theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.Diagram.sup_W {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] (D₁ D₂ : Diagram J κ) :
                    (D₁.sup D₂).W = D₁.WD₂.W
                    theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.isCardinalFiltered_aux (J : Type w) [SmallCategory J] (κ : Cardinal.{w}) [Fact κ.IsRegular] [IsCardinalFiltered J κ] (hJ : ∀ (e : J), ∃ (m : J) (x : e m), IsEmpty (m e)) {ι : Type w} (D : ιDiagramWithUniqueTerminal J κ) ( : HasCardinalLT ι κ) :
                    ∃ (m : J) (u : (i : ι) → (D i).top m), (∀ (i : ι), IsEmpty (m (D i).top)) ∀ (i₁ i₂ : ι) (j : J) (hj₁ : (D i₁).P j) (hj₂ : (D i₂).P j), CategoryStruct.comp ((D i₁).isTerminal.lift hj₁) (u i₁) = CategoryStruct.comp ((D i₂).isTerminal.lift hj₂) (u i₂)

                    Auxiliary definition for isCardinalFiltered.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.D₁_W {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] {ι : Type w} (D : ιDiagramWithUniqueTerminal J κ) ( : HasCardinalLT ι κ) (m : J) :
                      (D₁ D m).W = (⨆ (i : ι), (D i).W)MorphismProperty.ofHoms fun (x : Unit) => CategoryStruct.id m
                      @[simp]
                      theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.D₁_P {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] {ι : Type w} (D : ιDiagramWithUniqueTerminal J κ) ( : HasCardinalLT ι κ) (m a✝ : J) :
                      (D₁ D m).P a✝ = ((∃ (a : ι), (D a).P a✝) m = a✝)
                      def CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.D₂ {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] {ι : Type w} (D : ιDiagramWithUniqueTerminal J κ) ( : HasCardinalLT ι κ) {m : J} (u : (i : ι) → (D i).top m) :
                      Diagram J κ

                      Auxiliary definition for isCardinalFiltered.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.D₂_P {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] {ι : Type w} (D : ιDiagramWithUniqueTerminal J κ) ( : HasCardinalLT ι κ) {m : J} (u : (i : ι) → (D i).top m) (a✝ : J) :
                        (D₂ D u).P a✝ = ((∃ (a : ι), (D a).P a✝) m = a✝)
                        @[simp]
                        theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.D₂_W {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] {ι : Type w} (D : ιDiagramWithUniqueTerminal J κ) ( : HasCardinalLT ι κ) {m : J} (u : (i : ι) → (D i).top m) :
                        (D₂ D u).W = ((⨆ (i : ι), (D i).W)MorphismProperty.ofHoms fun (x : Unit) => CategoryStruct.id m)MorphismProperty.ofHoms fun (x : (i : ι) × Subtype (D i).P) => CategoryStruct.comp ((D x.fst).isTerminal.lift ) (u x.fst)
                        theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.eq_id_of_D₂_W {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] {ι : Type w} (D : ιDiagramWithUniqueTerminal J κ) ( : HasCardinalLT ι κ) {m : J} (u : (i : ι) → (D i).top m) (hD : ∀ {i : ι}, ¬(D i).P m) {f : m m} (hf : (D₂ D u).W f) :
                        @[simp]
                        theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.D₃_P {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] (D : DiagramWithUniqueTerminal J κ) (m₁ a✝ : J) :
                        (D₃ D m₁).P a✝ = (D.P a✝ m₁ = a✝)

                        Auxiliary definition for final_functor.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.D₄_P {J : Type w} [SmallCategory J] {κ : Cardinal.{w}} [Fact κ.IsRegular] (D : DiagramWithUniqueTerminal J κ) {m₁ : J} (φ : (x : Subtype D.P) → x m₁) (a✝ : J) :
                          (D₄ D φ).P a✝ = (D.P a✝ m₁ = a✝)
                          @[simp]
                          theorem CategoryTheory.IsCardinalFiltered.exists_cardinal_directed.aux (J : Type w) [SmallCategory J] (κ : Cardinal.{w}) [Fact κ.IsRegular] [IsCardinalFiltered J κ] (hJ : ∀ (e : J), ∃ (m : J) (x : e m), IsEmpty (m e)) :
                          ∃ (α : Type w) (x : PartialOrder α) (_ : IsCardinalFiltered α κ) (F : Functor α J), F.Final

                          The previous lemma IsCardinalFiltered.exists_cardinal_directed.aux is the particular case of the main lemma IsCardinalFiltered.exists_cardinal_directed below in the particular case the κ-filtered category J has no object m : J such that for any object j : J, there exists a map j ⟶ m.

                          The general case is obtained by applying the previous result to the cartesian product J × κ.ord.toType.

                          theorem CategoryTheory.IsFiltered.exists_directed (J : Type w) [SmallCategory J] [IsFiltered J] :
                          ∃ (α : Type w) (x : PartialOrder α) (_ : IsDirected α fun (x1 x2 : α) => x1 x2) (_ : Nonempty α) (F : Functor α J), F.Final

                          Stacks Tag 0032