Coherent pushforward along a finite morphism #
For a finite morphism f : X ⟶ Y into a locally Noetherian scheme, f_* sends coherent
sheaves to coherent sheaves and is exact on them. This file proves both and packages the
result as the functor Coh.pushforward f : Coh X ⥤ Coh Y, the f_* on coherent sheaves that
the derived direct image on Dᵇ(Coh) is built from. A closed immersion is finite (Mathlib's
instance in Mathlib/AlgebraicGeometry/Morphisms/Finite.lean), so #572 step 2, coherence of
ι_* F along a closed immersion, is the theorem isCoherent_pushforward here.
Main definitions #
Coh.pushforward: the functorf_* : Coh X ⥤ Coh Yalong a finite morphism, withCoh.pushforwardCompι, its comparison with module-sheaf pushforward.
Main results #
isCoherent_pushforward: coherence is preserved by pushforward along a finite morphism into a locally Noetherian scheme;isCoherent_pushforward_affineandisCoherent_restrict_chartare the affine case and one chart of its globalisation.Coh.pushforward_preservesFiniteLimits,Coh.pushforward_preservesEpimorphisms, andCoh.pushforward_preservesFiniteColimits: the functor is exact.
The three inputs to coherence, and what each was missing #
Every ingredient existed before the closed-immersion version of this argument; none of them fitted the next one without a bridge, and the same three bridges serve the finite case.
isCoherent_pushforward_of_finite(Pushforward/Affine.lean) is the mathematics, and it is stated aboutSpec.map φ : Spec S ⟶ Spec R— a map of spectra. An affine open cover supplies affine schemes, so it cannot be applied to a cover member directly.pushforwardRestrictIso(Modules/Pushforward/BaseChange.lean) compares the two ways round the restriction square. The chart step consumes this objectwise isomorphism.isCoherent_pushforward_of_iso(Pushforward/Iso.lean) closes the first gap.
The affine case is a factorisation, not an induction: Scheme.isoSpec_inv_naturality gives
f = X.isoSpec.hom ≫ Spec.map f.appTop ≫ Y.isoSpec.inv, and Modules.pushforward of a
composite is the composite of pushforwards by rfl, so the affine case is three steps with no
glue: transport to Spec Γ(X, ⊤) along an isomorphism, apply the affine theorem, transport back.
isAffine_of_isAffineHom supplies affineness of X and Scheme.Hom.finite_appTop finiteness of
the coordinate-ring map, the two facts a closed immersion used to supply as affineness and
surjectivity.
The globalisation is by opens, not by an AffineOpenCover:
Modules.isCoherent_iff_restrict_affineOpenCover is the obvious criterion and is not what this
file uses. Its members are affine schemes mapping in, and the base-change square is stated for an
open U and its U.ι; going straight to IsFinitePresentation.of_coversTop over Y.affineOpens
avoids carrying an isomorphism 𝒰.X i ≅ U.toScheme through every step, with
Scheme.Opens.opensRange_ι as the slice-versus-restriction bridge and iSup_affineOpens_eq_top
as the covering hypothesis.
IsLocallyNoetherian Y is used once per chart, to see that Γ(U.toScheme, ⊤) is Noetherian;
X is not assumed Noetherian for coherence and does not need to be. The two spellings
_of_finite (a ring map, RingHom.Finite) and IsFinite f (a morphism of schemes) both occur
in this directory and follow Mathlib's naming of the two notions.
Exactness #
Exactness is where finite morphisms differ from closed immersions. Pushforward along a closed
immersion is exact on every module sheaf; along a finite morphism it is exact only on
quasi-coherent sheaves, so Coh.pushforward_preservesFiniteColimits cannot be reflected from
the ambient functor. Instead, left exactness is reflected through Coh.ι from pushforward
being a right adjoint, and right exactness comes from preservation of epimorphisms, which is
pushforward_map_epi_of_isAffineHom on the underlying quasi-coherent sheaves, reflected
through Coh.ι; preservesHomology_of_preservesEpis_and_kernels then gives finite colimits.
References #
- Hartshorne, Algebraic Geometry, Exercise II.5.5(c) (pushforward of a coherent sheaf along a finite morphism is coherent) and Exercise II.5.17(b), (e).
- arXiv:2607.28411v1, Definition 3.1 and Proposition 3.3, which use
f_*along finite morphisms.
The affine case. A finite morphism into an affine scheme with Noetherian coordinate
ring pushes coherent sheaves to coherent sheaves. f is factored through Spec.map f.appTop
by isoSpec_inv_naturality; the source is affine because f is an affine morphism, and
f.appTop is a finite ring map because f is finite (Scheme.Hom.finite_appTop).
One chart. Over an affine open U of Y, the restriction of f_* M is finitely
presented: pushforwardRestrictIso turns the restriction of a pushforward into the pushforward
of a restriction along f ∣_ U, which is again finite, and the affine case applies.
Coherence is preserved by pushforward along a finite morphism into a locally Noetherian
scheme; for a closed immersion this is #572 step 2. The affine opens cover Y, and finite
presentation descends along a covering family; each chart is isCoherent_restrict_chart.
Pushforward of coherent sheaves along a finite morphism, f_* : Coh X ⥤ Coh Y.
It is module-sheaf pushforward restricted to coherent sheaves, which lands in coherent sheaves
by Scheme.isCoherent_pushforward. Finiteness of f buys both coherence of the image and,
through affineness, exactness on quasi-coherent sheaves. A proper morphism that is not finite
still preserves coherence (Grothendieck's finiteness theorem, Hartshorne III.8.8), but its f_*
is not exact, so the functor the paper wants on Dᵇ(Coh) is the derived Rf_*, which the
repository does not own.
Equations
Instances For
Forgetting coherence after coherent pushforward is module-sheaf pushforward after forgetting
coherence. Definitional, since ObjectProperty.liftCompιIso is Iso.refl; recorded because a
contract consuming Coh.pushforward asks for the comparison as data.
Equations
Instances For
Coherent pushforward along a finite morphism preserves finite limits. Reflected through the
fully faithful Coh.ι Y from the composite Coh.ι X ⋙ Modules.pushforward f, where pushforward
is a right adjoint; X must be locally Noetherian for Coh.ι X to be left exact. The composite
instance is comp_preservesFiniteLimits, a lemma rather than an instance, hence supplied by
name.
Coherent pushforward along a finite morphism is additive, reflected through the faithful
additive inclusion Coh.ι Y. Needed by Functor.mapDerivedCategory, which asks for additivity
separately from exactness.
Coherent pushforward along a finite morphism preserves epimorphisms. This is where
finiteness, through affineness, is spent on exactness: an epimorphism of coherent sheaves is an
epimorphism of the underlying quasi-coherent sheaves, pushforward_map_epi_of_isAffineHom
pushes it forward, and Coh.ι Y reflects it. The finite-presentation instances are stated on
(ι X).obj M, the spelling the goal carries, because Coh.ι is a def that instance search
does not unfold.
Coherent pushforward along a finite morphism preserves finite colimits: it preserves kernels and epimorphisms, hence homology, hence finite colimits.