Quasi-coherent module sheaves are closed under small coproducts #
On an arbitrary scheme, a coproduct of quasi-coherent module sheaves is again quasi-coherent, with no noetherian or quasi-compactness hypothesis and no bound on the indexing type.
The shape of the argument #
The same two steps as Kernels.lean, and this is the cheap case there — the
one that needs no localization criterion:
- Affine:
tildeis a left adjoint, so it preserves the coproduct, and quasi-coherence of eachM isays it already is a tilde. So∐ Mis a tilde. - General: restriction along an open immersion is also a left adjoint, so it preserves the coproduct, and quasi-coherence is affine-local.
What this is for #
ObjectProperty.IsClosedUnderColimitsOfShape (Discrete ι) is what
DerivedCategory.cohomologyIn_prop_coproduct consumes on the abelian side, and
so is one of the two inputs Dqc(X)'s coproduct structure needs (#721).
It is not the whole of that bullet. The other input — that
DerivedCategory X.Modules has the coproducts and that every Hⁿ preserves
them — is absent from Mathlib at this pin and is not supplied here. Nothing in
this file asserts anything about the derived category.
The closure also gives the full subcategory of quasi-coherent sheaves its own
ι-indexed coproducts, with the inclusion into X.Modules creating them, so
a coproduct formed among quasi-coherent sheaves is the ambient one. That is the
compatibility a realization functor needs downstream, and it holds on an arbitrary
scheme. It says nothing about exactness of those coproducts: the subcategory is
not abelian on a general scheme, so AB4 for it is not even a statement here, and
where it is available (the affine case, through the tilde equivalence) it is
supplied by its own owner.
The affine case #
On an affine spectrum, a coproduct of quasi-coherent module sheaves is quasi-coherent.
tilde is a left adjoint, so it carries the coproduct of the Γ(M i) to the
coproduct of the tilde Γ(M i), and quasi-coherence makes each fromTildeΓ (M i)
an isomorphism. Composing the two gives ∐ M as a tilde.
The general scheme #
Coproducts of quasi-coherent module sheaves are quasi-coherent, on an arbitrary scheme.
Restriction along an open immersion preserves coproducts, quasi-coherence is
affine-local, and the affine case applies on each member of
X.affineOpenCover.
Quasi-coherence is closed under ι-indexed colimits of a discrete shape.
This is the abelian-side input to Dqc(X)'s coproduct structure. Stated for one
indexing universe at a time, matching the repository's universe-explicit colimit
idiom rather than claiming closure under all colimits.
The category of quasi-coherent sheaves has ι-indexed coproducts, on an
arbitrary scheme.
Closure above plus the ambient coproducts is exactly what Mathlib's
hasColimitsOfShape_of_closedUnderColimits consumes. Nothing is transported and
no equivalence is used, so this holds with no hypothesis on X; in particular it
does not need quasi-coherent sheaves to be an abelian subcategory, which they are
not on a general scheme.
The instance is supplied by name rather than by inferInstance for the reason
recorded on Dqc.SchemeQuasicoherentDerivedCategory.sigma_mem: unifying the
ambient category with X.Modules routes it through Scheme.Modules.instCategory,
and search does not then match the instance's own head. Naming it is not a
workaround for an unproved fact -- it is the same instance, named.
The inclusion of quasi-coherent sheaves preserves ι-indexed coproducts,
on an arbitrary scheme.
This is the compatibility statement downstream consumers actually need: a coproduct formed among quasi-coherent sheaves has the ambient coproduct as its image, so a realization functor may compute either way.
The route is that closure makes the inclusion create those colimits
(Mathlib's createsColimitsOfShapeFullSubcategoryInclusion), which is strictly
stronger. Creation carries data rather than being a proposition, so it is used
here as a local term rather than exported as a second named declaration; a
consumer that needs it can rebuild it from
quasicoherent_isClosedUnderCoproducts in one line, as this proof does.
The inclusion of quasi-coherent sheaves reflects ι-indexed coproducts,
on an arbitrary scheme: a family in the subcategory whose ambient coproduct
cocone is a colimit was already a colimit there. Creation again, in the form a
functor landing in the subcategory consumes.