Skip to content

feat(ModularCurves): producer merge — integral Drinfeld Γ₁(N) functor sorry-free (★★) + Γ_H quotient engine + Hopf–Galois chart inputs - #5680

Merged
CBirkbeck merged 2967 commits into
mainfrom
dev/modular-curves
Jul 29, 2026
Merged

feat(ModularCurves): producer merge — integral Drinfeld Γ₁(N) functor sorry-free (★★) + Γ_H quotient engine + Hopf–Galois chart inputs#5680
CBirkbeck merged 2967 commits into
mainfrom
dev/modular-curves

Conversation

@CBirkbeck

Copy link
Copy Markdown
Owner

Whole-branch producer merge per the v10.172 cadence (dev/modular-curves, verification pinned at fd1a8ec).

Headline (axiom-clean {propext, Classical.choice, Quot.sound}, per-module attested by stream workers)

  • ★★ STREAM-KM: gammaOneDrinfeldProblem — the integral Drinfeld [Γ₁(N)] moduli functor, sorry-free (no invertibility of N): exact-order transport hasExactOrder_pullSection, the T-E4a transport chain de-sorried, the KM 5.3.4 binomial core CharP.p_eq_zero_of_pow_mem_span, isGammaOne_pullAlong, torsionIdeal_baseChange + sectionsDivisor_baseChange.
  • ★ STREAM-GH: base change commutes with the free quotient — exists_quotient_baseChange_of_free (KM 7.1.3(3c), full ∃!) on the GHB5a engine; GHC1 (corrected T-H4) and GHC3 (Loeffler Fact 3.8.1) as theorems; RelRepData.pullback/comparisonIso layers.
  • STREAM-G0: Hopf–Galois per-chart inputs (GroupScheme/StableChartData.lean), incl. the general surjective_hom_of_isClosedImmersion_specMap (ForMathlib-worthy) and Module.Finite baseRing groupRing.
  • QuotientLift morphism descent + PullSectionCanonicity transport layers.

WIP markers

main tolerates sorry as explicit WIP markers (CLAUDE.md); this branch carries the producers' current frontier sorries (e.g. chartPrecursorSpec_isClosedImmersion, the DrinfeldRegularity W2 leaf). The cleanup fleet only ever touches sorry-free declarations.

Verification / merge gate

No PR CI on this repo — a coordinator clean-room build (lake build ModularCurves in a detached worktree at fd1a8ec) is running. Hold merge until the green result is commented here.

🤖 Generated with Claude Code

@CBirkbeck

Copy link
Copy Markdown
Owner Author

Verification: was RED, now GREEN — ready for merge-go

At open, this branch had a 2-red cascade at committed state (not sibling WIP — both files were clean in git status), caught by a clean-room full-library build at the actual branch tip:

  1. ForMathlib/QuotientLift.lean — a redundant duplicate of SchemeAction.epi_pullback_snd_quotientπ (an open-immersion-only copy of the general form now in SchemeQuotient.lean) + a stale free-action hypothesis order. Fixed in e6a04fe8d (dedup + realign; +8/−21).
  2. Moduli/EngineDescent.lean — latent behind cleanup: golf padicLog_mul_of_norm_lt_one #1 (it imports QuotientLift, so lake skipped it until cleanup: golf padicLog_mul_of_norm_lt_one #1 built). Two call sites fed the old-order free-action hypothesis to the now-canonical-order consumers. Fixed in 61696bb83 (boundary adapters; +6/−2).

Root cause: STREAM-GH's GHB5a work changed the free-action hypothesis order to ∀ {T} (t) (g), g ≠ 1 → … in the SchemeQuotient/AffineQuotient layer; two older consumers weren't realigned. Both repairs are statement-preserving — no signature of any consumed result changed, no sorry added.

Clean-room result at 61696bb83: Build completed successfully (3798 jobs), real exit 0, zero errors. The only commit since (2cadc8134) is board/inbox markdown — no .lean change — so the current tip is green.

The remaining WIP sorrys on the branch are the producers' explicit frontier markers (chartPrecursorSpec_isClosedImmersion, the DrinfeldRegularity leaf, the gammaFullDrinfeldProblem rel-rep target); main tolerates these per CLAUDE.md, and the cleanup fleet only touches sorry-free declarations.

Held for your merge-go (coordinator opens + verifies; owner merges — the #5256 precedent). A follow-up cleanup ticket to unify the free-action hypothesis order project-wide will be filed once these files land on main.

CBirkbeck pushed a commit that referenced this pull request Jul 13, 2026
…, clean-room-verified, held for owner merge-go (both need rebase+re-verify vs churning main)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CDBirbeck and others added 29 commits July 29, 2026 04:49
…modular-curves

Brings in the codex campaign's PoleSheaf + Picard layer (~408 codex-only .lean files,
including 67 `PoleSheaf*` and 38 `Picard/*` that dev lacked): the relative Riemann-Roch
monomial-basis calculus for `π_*𝒪(n·D_0)`, its base-change compatibility, H¹ of the pole
sheaves, invertible-sheaf cocycle descent/effectivity, and `f^*(M^∨) ≅ (f^*M)^∨`.

Motivation (see the [GAP-A] board section): those are exactly the missing inputs for
GAP-A-1 (the chart-local theorem-of-the-square identity needs to know `ℓ` is a section of
`𝒪(3D_0)` and `v` one of `𝒪(2D_0)`) and, via the H¹ files, possibly for a genuine reduced
seesaw — which would make the universal-pair detour unnecessary. Landing it first so that
calculus is not re-proved by hand.

Only three conflicts:
* `ModularCurves.lean` — union of the two import lists (188 modules).
* `.mathlib-quality/tickets.md` — union.
* `Picard/PicComparison.lean` — resolved to codex's version, which relocates
  `ev`/`evalSection`/`overSection` to the new `Picard/Evaluation.lean` and
  `isIso_of_isIso_restrict`/`sheafificationW_of_bijective_on_cover` to
  `Picard/InvertibleSheaf.lean`, then re-adds the five declarations codex does not have:
  `isIso_of_bijective_app_on_cover` (dev-only, consumed by `GlueTrivialization`) and this
  session's `toSkeleton_tensorObj_eq`, `toSkeleton_unitObj`,
  `nonempty_iso_of_tensorObj_right_cancel`, `nonempty_iso_of_tensorObj_unitObj`.

NOT yet verified: that the merged tree builds, or that the codex results are axiom-clean.
Both are the next step.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… root target

* `Picard/PicComparison`, `ForMathlib/{FlasqueCohomology,TotalComplexUpNatVerticalEdge,TopCatSheafRestrict}`
  get the file-level transparency triple; that cleared 12 of the 15 failures.
* the residue was the usual shape: three `rfl`/`congr` closers the preceding steps now
  subsume, and one whisker-exchange step whose two sides differ only by associativity
  (`simpa only [Category.assoc]` on both rather than a hand-built `Eq.trans` chain).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… green

Transparency triple, plus `topSectionHom_app_top_apply_one` rephrased on `M.presheaf`
rather than `M.val`: the restriction is along the identity of `⊤`, and on `M.val`
functoriality drags in a `ModuleCat.restrictScalarsId'App` coherence term that `simp` then
cannot close.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…— options + note

Transparency triple clears three of its four failures. The fourth is a `change` into
`equiv₀`-shape that no longer type-checks, because `simp [HZeroGlobalSectionsIso]` now
leaves `ΓNatIsoSheafSections` explicit instead of folded into `equiv₀`. Left as codex wrote
it with a note: the file is a dead end — nothing imports it and it is not in the root
index, so it blocks nothing.

This is the ONLY failure in the merged tree. Root target: 9311 jobs green. All 345
root-orphaned modules: green except this one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…re-scope note

The three results GAP-A-1 was blocked on are present and axiom-clean in the merged tree:
the degree-4/5/6 monomial bases for `π_*𝒪(n·D_0)`, `H¹` vanishing for the pole sheaves on a
projective Weierstrass model, and codex's own `FibrewiseElliptic → LocallyWeierstrass`.

Two consequences boarded: the chart identity can now be proved inside the pole-sheaf
filtration rather than by hand, and — since `H¹` vanishing is available — the universal-pair
detour should be re-scoped before anyone implements it, because the reason for it (no
cohomology-and-base-change, hence no seesaw over a non-reduced base) has weakened.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@CBirkbeck
CBirkbeck merged commit c126de8 into main Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants