Documentation

LeanPool.JacobianDiffgeo.TailDuality.ChiLedger

The tail-χ ledger: chiT additivity (serre-duality-tails, chiT-ledger closure) #

Unit: serre-duality-tails (docs/design/serre-duality-tails.md §4/§9, orchestrator addendum 2026-07-08's "prove the TAIL-level six-term fragment + tail-chi ledger internally" instruction). This file discharges the ONE honest gap Duality.lean's docstring flagged: chiT's additivity (chiT D = chiT 0 + deg D), which is genuinely independent content from Serre duality (Miranda §2.3/2.6's own six-term exactness, not §3).

The construction. Exactly Finiteness/Chi.lean's own recipe (sixterm_rank1/2/3chi_of_lechi_eq_chi_zero_add_degree), transposed to the tail level by replacing Čech's H1 D/windowConnect/H1Incl with the tail-level analogues built here:

The two hard exactness facts (ker windowConnectT = range windowMap, ker H1TailIncl = range windowConnectT) are proved entirely elementarily, at the tail level, with NO reference to Čech's own H1/mlClass/cochain machinery: H1Tail D being literally T D ⧸ range(alphaL D) (a coker, not a colimit of cochain complexes) makes both a matter of DFinsupp/Submodule bookkeeping + one witness-representative choice per point, exactly as the orchestrator's routing note anticipated ("H1Tail = coker(alphaL) makes the connecting/exactness elementary"). In particular this file does not wait on H1Tail.toH1's surjectivity (still out of scope, per Comparison.lean/the root docstring) — it is not used here at all.

Exports #

H1TailIncl: the truncation map descended to H1Tail #

The truncation t^{D}_{D'} descends to H¹Tail, since it carries range(α_D) into range(α_{D'}) (truncT_alpha).

Equations
Instances For

    windowConnectT: the connecting map Window D D' → H1Tail D #

    The tail-level connecting map: embed the finite Čech window into the tail space (windowToT), then project to H1Tail D.

    Equations
    Instances For
      theorem RS.TailDuality.windowToT_apply_of_not_mem {X : Type u_1} [TopologicalSpace X] [T2Space X] [ChartedSpace X] [CompactSpace X] [DecidableEq X] {D D' : Divisor X} (h : D D') (w : Cech.Window D D') {p : X} (hp : pCech.diffSupp D D') :
      ((LaurentTail.windowToT D D' h) w) p = 0

      windowToT's value off the witness Finset is 0 (unfolds T.mk).

      Exactness at Window D D': ker (windowConnectT h) = range (windowMap h) #

      The key identity: windowMap's image, embedded via windowToT, is exactly alphaL D of the same global section — the tail-level shadow of Čech's own Realizes/mlClass machinery, but here a direct pointwise computation (no cochains).

      The harder half: a window class killed by windowConnectT already comes from L(D') via windowMap — an entirely elementary reconstruction (choose a representative per marked point, show the resulting global section lands in L(D') by a two-term order estimate).

      Exactness at Window D D': ker (windowConnectT h) = range (windowMap h).

      Exactness at H1Tail D: ker (H1TailIncl h) = range (windowConnectT h) #

      theorem RS.TailDuality.truncT_windowToT_eq_zero {X : Type u_1} [TopologicalSpace X] [T2Space X] [ChartedSpace X] [CompactSpace X] [DecidableEq X] {D D' : Divisor X} (h : D D') (w : Cech.Window D D') :
      (truncT h) ((LaurentTail.windowToT D D' h) w) = 0

      The window's image, truncated one step further, vanishes IDENTICALLY (not merely mod range(alphaL D')) — the tail-level shadow of Čech's H1Incl_windowConnect, but here a direct computation: a window representative already has order ≥ -(D' p) at its marked point, so truncating to T D' kills it outright.

      The harder half: a class killed by H1TailIncl already comes from windowConnectT — an elementary reconstruction via a per-point representative choice (H1Tail being a genuine coker, not a colimit of cochain complexes, makes this a DFinsupp bookkeeping exercise, no cohomological machinery).

      Exactness at H1Tail D: ker (H1TailIncl h) = range (windowConnectT h).

      The rank ledger, and chiT's additivity #

      theorem RS.TailDuality.sixterm_ranksT {X : Type u_1} [TopologicalSpace X] [T2Space X] [ChartedSpace X] [IsManifold (modelWithCornersSelf ) X] [CompactSpace X] [ConnectedSpace X] [T1Space X] [DecidableEq X] {D D' : Divisor X} (h : D D') :
      ∃ (p : ) (q : ), l D' = l D + p Module.finrank (Cech.Window D D') = p + q h1T D = q + h1T D'

      The tail ledger step: χT(D') = χT(D) + deg(D' − D) for D ≤ D'.

      The task's headline additivity statement: adding a single point of multiplicity 1 raises χT by exactly 1.

      The primary deliverable: χT(D) = χT(0) + deg D for every D (D' := D ⊔ 0, two applications of chiT_of_le, exactly Finiteness.chi_eq_chi_zero_add_degree's own recipe).