Cohomology is unchanged by pushforward along a closed embedding #
cohomologyPushforwardAddEquiv : Hⁿ(X, F) ≃+ Hⁿ(Y, f_* F) for f an inducing map with closed
range. This is #572 step 3's statement, instantiated at an actual map of spaces.
Everything here is plumbing #
CategoryTheory/Sites/Sheaves/CohomologyPushforward.lean proves the comparison abstractly, for a continuous
functor of sites whose pullback and pushforward are both exact. This composition-layer file
discharges those hypotheses for Opens.map f. No mathematics happens: the one non-formal input,
exactness of f_*, is PushforwardStalks.lean, and the rest is instance supply.
That was not obvious in advance and it is worth recording why. Three separate estimates of this step were wrong, each in the same direction:
- the site bridge is
rfl.TopCat.Sheaf.pushforward C fis defined as(Opens.map f).sheafPushforwardContinuous _ _ _, so the topological and site-level functors are the same term. Nothing is transported. EnoughInjectivesandHasExtare imports, not theorems. Both follow fromIsGrothendieckAbelian, which holds forSheaf D XonceTopology.Sheaves.AbelianandGrp.ABare in scope. A missing import here presents as a bare "failed to synthesize", which is indistinguishable from a missing result.HasGlobalSectionsFunctorand the left Kan extension are already instances forOpens.map.
What must be supplied by hand, and why #
Four instances that exist but that search will not find or cannot afford:
PreservesFiniteLimitsof the pullback. The instance isFunctor.sheafPullbackConstruction.preservesFiniteLimits; searching for it instead runswhnfpast 200000 heartbeats while unifying through site functors. Name it.Additiveof the pushforward —rflper morphism, but not found.Additiveof the pullback — from the pushforward's, throughAdjunction.left_adjoint_additive.IsLeftAdjoint/IsRightAdjointof the two, to get the remaining exactness halves.
⊤_ is not ⊤ #
The abstract theorem wants IsTerminal ((Opens.map f).obj (⊤_ (Opens Y))). Opens.map sends ⊤
to ⊤ by rfl, but the categorical terminal ⊤_ (Opens Y) is not syntactically the lattice
⊤; terminal_opens_eq_top is the one-line antisymmetry that identifies them, and
IsTerminal.ofUnique does not discharge the goal without it.
Scope #
Spaces, not schemes. A closed immersion of schemes induces a closed embedding of underlying
spaces, so this applies to one — but that final step is not taken here, and #572's acceptance
criterion is phrased about schemes.
Main results #
cohomologyPushforwardAddEquivAt— the comparison, at a chosenHasExtwitness.cohomologyPushforwardAddEquivAt_naturality— it is natural in the sheaf.cohomologyPushforwardAddEquiv— the same at the witness instance search finds.
⊤ is terminal in Opens: morphisms are proofs of ≤, so le_top is the unique one.
Equations
Instances For
The categorical terminal of Opens is the lattice ⊤. Needed because the two are not
syntactically equal and the abstract theorem asks about the former.
Opens.map f carries the categorical terminal open of Y to a terminal open of X: it sends
⊤ to ⊤. Named, because it is data that the comparison and its naturality statement have to
share.
Equations
Instances For
Cohomology is unchanged by pushforward along a closed embedding, at a chosen HasExt
witness.
#572 step 3, at a map of spaces. Every hypothesis of the abstract comparison is discharged here;
the only one that is not an instance or an import is exactness of f_*, which is
preservesFiniteColimits_pushforward.
The HasExt witnesses are positional, as in the Čech lane: Sheaf.H lands in the HasExt
universe, and a caller whose groups are named at HasExt.standard (the coherent-cohomology
convention, HasExt.{u + 1}) cannot let instance search pick the Grothendieck-category
HasExt.{u}, which names different groups.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The comparison is natural in the sheaf. The abstract naturality
sheafHPushforwardAddEquiv_naturality, at the same instances and the same terminal witness.
Cohomology is unchanged by pushforward along a closed embedding, at the HasExt witness
instance search finds.
Equations
- DerivedAlgGeo.Topology.cohomologyPushforwardAddEquiv f hemb hcl F n = DerivedAlgGeo.Topology.cohomologyPushforwardAddEquivAt f hemb hcl ⋯ ⋯ F n