Projective objects and categories with enough projectives #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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.
projective.over X picks an arbitrary such projective object,
and projective.π X : projective.over X ⟶ X is the corresponding epimorphism.
Given a morphism f : X ⟶ Y, projective.left f is a projective object over kernel f,
and projective.d f : projective.left f ⟶ X is the morphism π (kernel f) ≫ kernel.ι f.
- factors : ∀ {E X : C} (f : P ⟶ X) (e : E ⟶ X) [_inst_2 : category_theory.epi e], ∃ (f' : P ⟶ E), f' ≫ e = f
 
An object P is called projective if every morphism out of P factors through every epimorphism.
Instances of this typeclass
- category_theory.projective_presentation.projective
 - category_theory.projective.zero_projective
 - category_theory.projective.projective
 - category_theory.projective.category_theory.limits.coprod.projective
 - category_theory.projective.category_theory.limits.sigma_obj.projective
 - category_theory.projective.category_theory.limits.biprod.projective
 - category_theory.projective.category_theory.limits.biproduct.projective
 - category_theory.projective.projective_over
 - category_theory.projective.syzygies.projective
 - category_theory.ProjectiveResolution.projective
 - Profinite.projective_ultrafilter
 - CompHaus.projective_ultrafilter
 - category_theory.injective.opposite.unop.category_theory.projective
 - category_theory.injective.opposite.op.category_theory.projective
 
- P : C
 - projective : category_theory.projective self.P . "apply_instance"
 - f : self.P ⟶ X
 - epi : category_theory.epi self.f . "apply_instance"
 
A projective presentation of an object X consists of an epimorphism f : P ⟶ X
from some projective object P.
Instances for category_theory.projective_presentation
        
        - category_theory.projective_presentation.has_sizeof_inst
 
- presentation : ∀ (X : C), nonempty (category_theory.projective_presentation X)
 
A category "has enough projectives" if for every object X there is a projective object P and
an epimorphism P ↠ X.
Instances of this typeclass
- category_theory.projective.Type.enough_projectives
 - Module.Module_enough_projectives
 - Rep.category_theory.enough_projectives
 - Profinite.category_theory.enough_projectives
 - CompHaus.category_theory.enough_projectives
 - category_theory.injective.opposite.category_theory.enough_projectives
 - local_cohomology.Module_enough_projectives'
 
An arbitrarily chosen factorisation of a morphism out of a projective object through an epimorphism.
Equations
The axiom of choice says that every type is a projective object in Type.
projective.over X provides an arbitrarily chosen projective object equipped with
an epimorphism projective.π : projective.over X ⟶ X.
Equations
Instances for category_theory.projective.over
        
        
    The epimorphism projective.π : projective.over X ⟶ X
from the arbitrarily chosen projective object over X.
Equations
Instances for category_theory.projective.π
        
        
    When C has enough projectives, the object projective.syzygies f is
an arbitrarily chosen projective object over kernel f.
Equations
Instances for category_theory.projective.syzygies
        
        
    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.)
Given an adjunction F ⊣ G such that G preserves epis, F maps a projective presentation of
X to a projective presentation of F(X).
Given an equivalence of categories F, a projective presentation of F(X) induces a
projective presentation of X.
Given a projective object P mapping via h into
the middle object R of a pair of exact morphisms f : Q ⟶ R and g : R ⟶ S,
such that h ≫ g = 0, there is a lift of h to Q.