Abelian categories with enough projectives have projective resolutions #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
When C
is abelian projective.d f
and f
are exact.
Hence, starting from an epimorphism P ⟶ X
, where P
is projective,
we can apply projective.d
repeatedly to obtain a projective resolution of X
.
When C
is abelian, projective.d f
and f
are exact.
The preadditive Co-Yoneda functor on P
preserves colimits if P
is projective.
Equations
- category_theory.preserves_finite_colimits_preadditive_coyoneda_obj_of_projective P = let _inst : (category_theory.preadditive_coyoneda_obj (opposite.op P)).preserves_epimorphisms := _ in (category_theory.preadditive_coyoneda_obj (opposite.op P)).preserves_finite_colimits_of_preserves_epis_and_kernels
An object is projective if its preadditive Co-Yoneda functor preserves finite colimits.
Our goal is to define ProjectiveResolution.of Z : ProjectiveResolution Z
.
The 0
-th object in this resolution will just be projective.over Z
,
i.e. an arbitrarily chosen projective object with a map to Z
.
After that, we build the n+1
-st object as projective.syzygies
applied to the previously constructed morphism,
and the map to the n
-th object as projective.d
.
Auxiliary definition for ProjectiveResolution.of
.
Equations
- category_theory.ProjectiveResolution.of_complex Z = chain_complex.mk' (category_theory.projective.over Z) (category_theory.projective.syzygies (category_theory.projective.π Z)) (category_theory.projective.d (category_theory.projective.π Z)) (λ (_x : Σ (X₀ X₁ : C), X₁ ⟶ X₀), category_theory.ProjectiveResolution.of_complex._match_1 _x)
- category_theory.ProjectiveResolution.of_complex._match_1 ⟨X, ⟨Y, f⟩⟩ = ⟨category_theory.projective.syzygies f _, ⟨category_theory.projective.d f _, _⟩⟩
In any abelian category with enough projectives,
ProjectiveResolution.of Z
constructs a projective resolution of the object Z
.
Equations
- category_theory.ProjectiveResolution.of Z = {complex := category_theory.ProjectiveResolution.of_complex Z, π := (category_theory.ProjectiveResolution.of_complex Z).mk_hom ((chain_complex.single₀ C).obj Z) (category_theory.projective.π Z) 0 _ (λ (n : ℕ) (_x : Σ' (f : (category_theory.ProjectiveResolution.of_complex Z).X n ⟶ ((chain_complex.single₀ C).obj Z).X n) (f' : (category_theory.ProjectiveResolution.of_complex Z).X (n + 1) ⟶ ((chain_complex.single₀ C).obj Z).X (n + 1)), f' ≫ ((chain_complex.single₀ C).obj Z).d (n + 1) n = (category_theory.ProjectiveResolution.of_complex Z).d (n + 1) n ≫ f), ⟨0, _⟩), projective := _, exact₀ := _, exact := _, epi := _}
If X
is a chain complex of projective objects and we have a quasi-isomorphism f : X ⟶ Y[0]
,
then X
is a projective resolution of Y.
Equations
- homological_complex.hom.to_single₀_ProjectiveResolution f H = {complex := X, π := f, projective := H, exact₀ := _, exact := _, epi := _}