Documentation

Mathlib.CategoryTheory.Preadditive.Projective

Projective objects and categories with enough projectives #

An object P is called projective if every morphism out of P factors through every epimorphism.

A category C has enough projectives if every object admits an epimorphism from some projective object.

CategoryTheory.Projective.over X picks an arbitrary such projective object, and CategoryTheory.Projective.π X : CategoryTheory.Projective.over X ⟶ X is the corresponding epimorphism.

Given a morphism f : X ⟶ Y, CategoryTheory.Projective.left f is a projective object over CategoryTheory.Limits.kernel f, and Projective.d f : Projective.left f ⟶ X is the morphism π (kernel f) ≫ kernel.ι f.

An object P is called projective if every morphism out of P factors through every epimorphism.

Instances
    structure CategoryTheory.ProjectivePresentation {C : Type u} [Category.{v, u} C] (X : C) :
    Type (max u v)

    A projective presentation of an object X consists of an epimorphism f : P ⟶ X from some projective object P.

    Instances For

      A category "has enough projectives" if for every object X there is a projective object P and an epimorphism P ↠ X.

      Instances
        def CategoryTheory.Projective.factorThru {C : Type u} [Category.{v, u} C] {P X E : C} [Projective P] (f : P X) (e : E X) [Epi e] :
        P E

        An arbitrarily chosen factorisation of a morphism out of a projective object through an epimorphism.

        Equations
        Instances For
          @[simp]
          theorem CategoryTheory.Projective.factorThru_comp {C : Type u} [Category.{v, u} C] {P X E : C} [Projective P] (f : P X) (e : E X) [Epi e] :
          @[simp]
          theorem CategoryTheory.Projective.factorThru_comp_assoc {C : Type u} [Category.{v, u} C] {P X E : C} [Projective P] (f : P X) (e : E X) [Epi e] {Z : C} (h : X Z) :
          theorem CategoryTheory.Projective.of_iso {C : Type u} [Category.{v, u} C] {P Q : C} (i : P Q) :

          The axiom of choice says that every type is a projective object in Type.

          instance CategoryTheory.Projective.instSigmaObj {C : Type u} [Category.{v, u} C] {β : Type v} (g : βC) [Limits.HasCoproduct g] [∀ (b : β), Projective (g b)] :

          Projective.over X provides an arbitrarily chosen projective object equipped with an epimorphism Projective.π : Projective.over X ⟶ X.

          Equations
          Instances For

            The epimorphism projective.π : projective.over X ⟶ X from the arbitrarily chosen projective object over X.

            Equations
            Instances For

              When C has enough projectives, the object Projective.syzygies f is an arbitrarily chosen projective object over kernel f.

              Equations
              Instances For
                @[reducible, inline]

                When C has enough projectives, Projective.d f : Projective.syzygies f ⟶ X is the composition π (kernel f) ≫ kernel.ι f.

                (When C is abelian, we have exact (projective.d f) f.)

                Equations
                Instances For
                  theorem CategoryTheory.Adjunction.map_projective {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] {F : Functor C D} {G : Functor D C} (adj : F G) [G.PreservesEpimorphisms] (P : C) (hP : Projective P) :
                  Projective (F.obj P)
                  theorem CategoryTheory.Adjunction.projective_of_map_projective {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] {F : Functor C D} {G : Functor D C} (adj : F G) [F.Full] [F.Faithful] (P : C) (hP : Projective (F.obj P)) :
                  def CategoryTheory.Adjunction.mapProjectivePresentation {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] {F : Functor C D} {G : Functor D C} (adj : F G) [G.PreservesEpimorphisms] (X : C) (Y : ProjectivePresentation X) :

                  Given an adjunction F ⊣ G such that G preserves epis, F maps a projective presentation of X to a projective presentation of F(X).

                  Equations
                  Instances For
                    theorem CategoryTheory.Equivalence.map_projective_iff {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (F : C D) (P : C) :
                    Projective (F.functor.obj P) Projective P

                    Given an equivalence of categories F, a projective presentation of F(X) induces a projective presentation of X.

                    Equations
                    Instances For