Hⁱ(Pⁿ, O(d)) is finite-dimensional in every positive degree #
Cech/Vanishing.lean kills every degree whose tuples are too short to meet all the variables, by
contracting every Laurent block. The top degree is exactly where that fails, and
Cech/TopDegree.lean separates the surviving block instead: every class is carried by the full
block. Algebra/MvPolynomial/Cech/Finite.lean shows those full blocks form a
finite-dimensional k-space. This file joins the algebraic result to the geometric Čech complex
and discharges the finiteness interface.
The argument #
intCechBlockCocycles is the space of full-block cocycles of a degree — a submodule of the
finite-dimensional space of full-block cochains, hence finite-dimensional. intCechBlockClass
sends such a cocycle to its cohomology class, and the two halves are:
intCechBlockSmul_comp_class— the class map isk-linear. The action on cohomology is the map a sheaf endomorphism induces, so this ishomologyπnaturality once the cycle map is known to intertwine the actions, which isintCechCochainsDegreewiseAddEquiv_smulfrom the file below;intCechBlockClass_surjective— it is onto.exists_fullBlock_add_coboundarysplits a cocycle into its full block and a coboundary; the full block is again a cocycle and lands incechBlockSpan, and the coboundary dies in homology bytoCycles_comp_homologyπ.
Module.Finite.of_surjective then gives finiteness on the Čech side, and
module_finite_linearCoherentH_of_cech carries it to the group the interface names.
Two spellings that have to be pinned #
cechCohomologyFunctor takes its space as an implicit argument, and cechCohomologyModule
supplies the module instance at whatever spelling its U was elaborated with. Writing the chart
family as polynomialVariableChart ι k fixes that space to ProjectiveSpectrum.top _, while the
finiteness interface asks for Y; the two are definitionally equal, so the instance is
inhabited, and not reducibly so, so instance search never finds it. intChart and
intTwistModules are the same objects presented at the variety, and they exist only to make the
one instance search meets be the one that is there. This is the transparency rule of
.claude/references/instance-transparency.md, technique 5.
The same effect appears twice more, and is handled the same way: the AddCommGroup, Module and
Module.Finite instances on intCechBlockCocycles are named rather than searched for, because it
is a submodule of a product of submodules and search will not assemble that on its own.
Scope #
Positive degrees only. exists_fullBlock_add_coboundary splits a cocycle in degree n + 1,
and the splitting is useful because the remainder is a coboundary — which needs a degree below.
Degree 0 has none, and H⁰ is not a subquotient but the module of global sections outright; its
finiteness is the finite-dimensionality of a graded piece of the polynomial ring and is a separate
argument. So Hⁿ(Pⁿ, O(d)) is covered for every n ≥ 1, at either sign of d, and P⁰ is not.
The abstract cocycle condition, read as the explicit alternating sum.
The full blocks of a Čech degree, included into all cochains.
No finiteness of ι is needed: cechBlockSpan is defined without it, and only its finite
generation is not.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Čech differential, read on full-block cochains through the degreewise comparison.
k-linearity is not assumed of the explicit differential: it is intCechCochainsDegreewiseAddEquiv
linearity on both sides of the chain-map square that the scalar endomorphism satisfies.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The full-block cocycles of a Čech degree.
Equations
- AlgebraicGeometry.Proj.intCechBlockCocycles ι k d n = (AlgebraicGeometry.Proj.intCechBlockD ι k d n).ker
Instances For
Equations
Equations
A full-block cocycle, as a map of abelian groups into the Čech cochains.
Built as a composite of maps that already exist, so map_add and map_zero come for free.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cycle a full-block cocycle determines.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The class of a full-block cocycle in Čech cohomology.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Scalar multiplication on the full-block cocycles, as a map of abelian groups.
Equations
Instances For
The cycle a full-block cocycle determines intertwines the two scalar actions.
set_option maxHeartbeats 1000000 in
Reduced to iCycles by monomorphism, where it is intCechBlockSmul_comp_cocycleHom.
The class map is k-linear.
set_option maxHeartbeats 1000000 in
The action on cohomology is the map the sheaf endomorphism induces, so this is homologyπ
naturality once the cycle map is known to intertwine the actions.
Every class is the class of a full-block cocycle.
exists_fullBlock_add_coboundary splits a cocycle into its full block and a coboundary; the full
block is again a cocycle and lies in cechBlockSpan, and the coboundary dies in homology.
The twist O(d) as a sheaf of modules on projective space as a variety.
The type ascription is the point: associatedSheaf lands in (Proj 𝒜).Modules, and the finiteness
interface asks for Y.Modules. Those are the same term,
but only the second spelling lets cechCohomologyModule's instance be found.
Equations
Instances For
The variable charts, typed as opens of the variety.
Same ascription trick as intTwistModules: cechCohomologyFunctor takes its space as an implicit
argument, so the chart family has to be presented at Y for the module instance
cechCohomologyModule supplies to be the one instance search meets.
Instances For
The class map, as a k-linear map into Čech cohomology.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Hⁿ⁺¹ of an integer twist is finite-dimensional, on the Čech side.
Hⁿ⁺¹(Pⁿ, O(d)) is a finite-dimensional k-vector space.
The interface group is linearCoherentH, and the finite spanning set lives on the Čech side;
module_finite_linearCoherentH_of_cech carries it across, and it is the k-linearity of the
comparison that makes the transfer legitimate.
set_option maxHeartbeats 1000000 in
The injective resolution is chosen rather than supplied: the site of opens is small, so
canonicalInjectiveResolution produces one. The HasExt witness is instantiated at
HasExt.standard _, which is the reconciliation module_finite_linearCoherentH_of_cech's
docstring describes.