Documentation

DerivedAlgGeo.CategoryTheory.Abelian.SerreClass.FullSubcategory

A Serre subcategory of an abelian category is abelian #

Mathlib has both ends of this and not the join. ObjectProperty.IsSerreClass is closure under subobjects, quotients and extensions, and it already supplies ContainsZero, IsClosedUnderKernels and IsClosedUnderCokernels. Mathlib's abelian-subcategory instance (CategoryTheory/Abelian/Subcategory.lean) asks for those three and IsClosedUnderFiniteProducts, which is not among a Serre class's defining closures and does not follow by instance search.

It does follow mathematically, and the object-level step is Mathlib's too: ObjectProperty.prop_biprod derives P (X āŠž Y) from closure under extensions, because X āŠž Y is a split extension of Y by X. This file packages that as the two closure instances, after which the abelian structure is Mathlib's.

Main results #

Together with Mathlib's instance these give Abelian P.FullSubcategory, recorded as a regression check below rather than restated as an instance.

Why this is needed #

Stacks 13.17.4 (tag 0FCL) states that D⁻(š“‘) → D⁻_š“‘(š“) is an equivalence for a Serre subcategory š“‘ āŠ† š“ in which every object of š“‘ admitting a surjection from an object of š“ admits one from a subobject lying in š“‘. Its source D⁻(š“‘) cannot be formed at all without an abelian structure on š“‘, so this is that theorem's first prerequisite.

AlgebraicGeometry/Modules/Coherent/Abelian/Basic.lean runs the same binary-product argument by hand for coherent sheaves. That instance could be derived from this one once Scheme.coherent is known to be a Serre class; it is left alone here.

A Serre class is closed under binary products: the limit of a pair is its biproduct, and prop_biprod puts that in P by closure under extensions.

The proof shape is the one AlgebraicGeometry.Scheme.coherent_isClosedUnderBinaryProducts uses for coherent sheaves, transporting the biproduct's limit cone onto the given one.

A Serre class is closed under finite products, the one hypothesis of Mathlib's abelian-subcategory instance that IsSerreClass does not already provide.