Laurent tail spaces TailAt p D / T D (laurent-tails, design §2 D1/D2/D4, §4.1) #
Unit: laurent-tails (docs/design/laurent-tails.md).
TailAt p D: the tail space at a pointp— germs at the chart source ofp, modulo those of order≥ -(D p)(D1). A direct quotient, no colimit: every germ has some finite order, so the "growing window" colimit Miranda's definition literally describes collapses to a single quotient (verified by the spike,scratch_ltails.lean).windowAtToTailAt: Cech's finiteWindowAt p (D p) d'embeds intoTailAt p Dfor every finited'(the two defining submodules are literally equal, not just comparable).T D := Π₀ p : X, TailAt p D(D2): aDFinsupp(dependent onpviachartAt ℂ p/D p).abbrev, notdef— matchingCech.C0/C1/Window/H1's own convention (a plaindefbreaksDFunLike/AddCommGroup/Module ℂinstance search here, confirmed by the spike).T.mk/windowToT(D4): the finite skyscraperWindow D D'embeds inT D, the bridge that will let a future bridge derive the tail-level six-term sequence from Cech's own.
Deviation from the design doc: mulTailAt/mulTail/mulTailEquiv (§2 D5) are not built here.
serre-duality-tails (docs/requests/laurent-tails.md, item 4) explicitly de-scopes them: their
own mulInto (built directly on T D/TailAt p D from this file) supersedes mulTail, so this
is a genuine scope relief, not a shortfall.
The tail space at p: germs at the chart source of p, modulo those of order ≥ -(D p).
No colimit over d' is needed: every germ has some finite order, so it already lies in some
Cech.ordGe p (-d'). abbrev, not def — matching T D's own convention (D2): a plain
def here is opaque enough to break Submodule.liftQ's instance/type matching against
TailAt p D downstream (Comparison.lean's tailAtToH1, confirmed by that build); abbrev
lets the ambient Submodule.Quotient AddCommGroup/Module ℂ instances be found directly,
so the two instances previously declared here by hand are no longer needed.
Equations
- RS.LaurentTail.TailAt p D = (RS.MeroGermOn X (chartAt ℂ p).source ⧸ RS.Cech.ordGe p (-D p))
Instances For
The quotient map onto TailAt p D.
Equations
- RS.LaurentTail.TailAt.mk p D = (RS.Cech.ordGe p (-D p)).mkQ
Instances For
windowAtToTailAt (D1 continued) #
Cech's finite Laurent window at p (between orders -d' and -(D p)) embeds into the full
tail space: WindowAt p (D p) d''s defining submodule, viewed inside ordGe p (-d'), is exactly
the restriction of ordGe p (-(D p)) there.
Equations
- RS.LaurentTail.windowAtToTailAt p D d' = (Submodule.comap (RS.Cech.ordGe p (-d')).subtype (RS.Cech.ordGe p (-D p))).mapQ (RS.Cech.ordGe p (-D p)) (RS.Cech.ordGe p (-d')).subtype ⋯
Instances For
Every tail class is represented by some finite window (the union-of-ordGe fact): every
germ has an honest WithTop ℤ-order, hence lies in ordGe p (-d') for d' large enough.
Miranda's T[D]: finitely-supported tail data (D2). abbrev, not def — a plain def
breaks DFunLike/AddCommGroup/Module ℂ instance search for the assembled DFinsupp (confirmed
by the spike, scratch_ltails.lean).
Equations
- RS.LaurentTail.T D = Π₀ (p : X), RS.LaurentTail.TailAt p D
Instances For
Equations
- RS.LaurentTail.instAddCommGroupT D = { toAddGroup := DFinsupp.instAddGroup, add_comm := ⋯ }
Equations
- RS.LaurentTail.instModuleT D = { toDistribMulAction := DFinsupp.distribMulAction, add_smul := ⋯, zero_smul := ⋯ }
A single finitely-supported tail element, built from a Finset witness (mirrors
Cech.Window.diffSupp's own pattern).
Equations
- RS.LaurentTail.T.mk D S x = DFinsupp.mk S x
Instances For
The finite skyscraper Window D D' embeds in the full tail space T D — the bridge that
lets a future bridge file derive the tail-level six-term sequence from Cech's own (instead of
re-proving it).
Equations
- One or more equations did not get rendered due to their size.