Skip to content

feat(ModularCurves): Y(N) frontier — [YF-ETALE]★ (Γ(N)-presentation is étale) + T-D8-bridge + T-E9 MASTER wired - #5790

Open
CBirkbeck wants to merge 61 commits into
mainfrom
dev/modular-curves-y1
Open

feat(ModularCurves): Y(N) frontier — [YF-ETALE]★ (Γ(N)-presentation is étale) + T-D8-bridge + T-E9 MASTER wired#5790
CBirkbeck wants to merge 61 commits into
mainfrom
dev/modular-curves-y1

Conversation

@CBirkbeck

Copy link
Copy Markdown
Owner

STREAM-YN's completed Y(N) frontier, per the v10.172 cadence. Clean-room verification pinned at d9f2fbb.

Headline

  • [YF-ETALE]★ etale_fullLevelSpaceStruct — the Γ(N)-presentation is étale over the base (KM 3.7.1 / Loeffler 3.8.2 for Γ(N)): open immersion ([YF-CLOPEN]) ≫ pullback of finite étale ≫ finite étale. Depends only on the inherited T-B6/BB-DIFF torsion black-box.
  • [YF-CLOPEN] isOpenImmersion_levelSpaceΓι_full + the full ⊇-over-fullLevelOpens leaf (Moduli/FullLevelClopen.lean: combSec_ne_of_diff, isFullLevel_taut_over_fullLevelOpens), axiom-clean.
  • T-D8-bridge fullLevel_divisor_iff_naive_gen — proven BOTH directions sorry-free downstream (via sections_residue_eq_of_base_eq; no T-D2 globalization needed).
  • T-E9 MASTER gammaFullNaive_representable wired end-to-end (ModularCurve/YFullTE9.lean).

WIP markers (main tolerates per CLAUDE.md)

The MASTER's Representable + recollement conjuncts bottom out at the shared representable_iff engine (KM 4.7.0) — the same gate KM's Γ₁ and GH's Γ_H hit — currently gated on T-E-OMEGA (coordinator-tracked, un-demote surfaced to owner). Plus the inherited T-B6 torsion black-box and one redundant LevelStructure/Basic.lean register-box (proof exists sorry-free downstream in FullLevelClopen; relocation is a boarded coordinator TODO). The cleanup fleet only touches sorry-free declarations.

Verification

No PR CI on this repo — coordinator clean-room lake build ModularCurves in a detached worktree at d9f2fbb: Build completed successfully (4212 jobs), real logged exit 0, zero errors.

Held for owner merge-go (coordinator opens + verifies; owner merges — the #5256/#5680 precedent).

🤖 Generated with Claude Code

CDBirbeck and others added 30 commits July 12, 2026 22:24
…gree_eq — a subdivisor of equal degree is the whole divisor (axiom-clean): the subscheme inclusion is a closed immersion of finite-loc-free equal-rank S-schemes ⟹ iso (general scheme wrapper) ⟹ equal kernels ⟹ equal ideals. The ⊇ divisor-equality tool; rooted (NEW-Y1)
…penness + full ⊇ machinery: comm-algebra + comaximal + general scheme wrapper + [YF-SUBDIV-EQ]); remaining = [YF-⊇]/[YF-⊆] wiring to the taut/sectionsDivisor construction (NEW-Y1)
…ionIdeal (∏ker=⋂ker⊇torsionIdeal via [YF-COMAX]+torsionIdeal_le_ker, IsSubdivisor+degree N²→[YF-SUBDIV-EQ]); public torsionDivisor + torsionDivisor_degree (torsion_rank transported across torsionIdeal_subscheme iso); torsionIdeal_le_ker axiom-CLEAN; divisor chain inherits ONLY boarded Tier-B boxes (torsionπ finite/flat, torsion_rank), zero new sorry; fixed zero_comp_mulByHom collision w/ sibling GammaH (renamed mine→zeroPoint_comp_mulByHom) (NEW-Y1)
…q_top_of_sections_pointwise_ne: two pointwise-distinct sections of a separated ρ have comaximal kernels (sections are closed immersions via of_comp; retraction forces disjoint images; support_ker+disjoint→sup_eq_top). Refactored sectionsDivisor_ideal_eq_torsionIdeal to consume pointwise-ne directly via prod_eq_biInf_of_pairwise_sup_eq_top (cleaner than support-disjoint). Engine clean; chain inherits only boarded Tier-B boxes (NEW-Y1)
…entι_comp_eq (agreementι ≫ a = agreementι ≫ b, via lift_fst/snd + diagonal_fst/snd) + range_agreementι_subset (range ⊆ topological agreement locus). Reusable keystone for the disjointness bridge: for SECTIONS the residue map is forced = retraction-inverse, so topological agreement = morphism agreement = equalizer range, making empty-agreement-scheme ⟹ comaximal (NEW-Y1)
…CLEAN, term-mode) — base-changed sections agreeing at u ⟹ underlying E-points agree (via asSection_val_fst first-projection); sidesteps semireducible-baseChange kabstract friction. Reduces base-changed-combo pointwise-ne to E-point pointwise-ne, the sectionsDivisor_ideal_eq_torsionIdeal input (NEW-Y1)
…_killed (difference of N-killed is N-killed, CLEAN) + base_ne_of_notMem_pointVanishSet consumer (CLEAN, contrapositive giving pointwise-ne from vanish-locus avoidance). Single deep frontier: mem_pointVanishSet_of_base_eq (fibrewise group law: topological point agreement ⟹ difference vanishes) — WIP sorry, fully documented proof strategy (pointToTorsion additivity + E[N] translation automorphism + zero-section residue triviality). All else in [YF-⊇] chain axiom-clean/boarded (NEW-Y1)
…Divisor_ideal_eq_torsionIdeal + comaximality engine + agreement equalizer + scaffolding, all clean/boarded); single frontier localized = mem_pointVanishSet_of_base_eq (fibrewise group law, WIP sorry) w/ 3 documented sub-tickets (E[N] group structure→pointToTorsion additivity, translation automorphism, zero-section residue triviality) (NEW-Y1)
…f_base_eq (topological agreement ⟹ vanish) was FALSE: Galois-conjugate torsion points share a topological image but their nonzero difference vanishes nowhere. Replaced with mem_pointVanishSet_of_residue_eq (residue-field morphism agreement ⟹ vanish, TRUE) + sections_residue_eq_of_base_eq (forced-residue-for-sections: section residue map = retraction-inverse, the section-specific upgrade). Both WIP sorry but CORRECT; the base-changed combos ARE sections so the section route applies (NEW-Y1)
…oncrete proof paths (forced-residue-for-sections via residueFieldMap two-sided-inverse; residue-agreement vanishing via Spec κ(u)→agreement locus) (NEW-Y1)
…velSupset 0-sorry)

sections_residue_eq_of_base_eq (forced residue for sections: retraction of a field
extension is iso — mono field-hom + split-epi via residueFieldMap_comp, then epi-cancel
+ residueFieldCongr proof-irrelevance) + mem_pointVanishSet_of_residue_eq (residue
agreement ⟹ x−y agrees with 0 over κ(u) via Point.restrict additivity ⟹ E[N]-classifiers
agree ⟹ Spec κ(u) factors through the agreement locus = pointVanishSet). New reusable
engine leaf base_mem_range_agreementι (AgreementLocusClopen): a map equalizing a,b factors
through agreementι (no unramified hyp). [YF-⊇] divisor chain now needs only its boarded
Tier-B torsion boxes. (STREAM-YN)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… Sub-lemma A

- base_mem_pointVanishSet_of_comp_eq (FullLevelSupset): generalize the residue bridge to an
  arbitrary morphism m (residue special case now derives from it) — the tool the distinctness
  argument composes with U.ι.
- Moduli/FullLevelClopen.lean (new): restrict_zsmul, Point.asSection_add (term-mode, via the
  point_add_val_congr_base base-independence + baseChangeEquiv AddEquiv), combo_eq_asSection_restrict
  (Sub-lemma A: [a]P+[b]Q of taut sections = section of combPoint a b). Foundation for [YF-⊇] over
  fullLevelOpens. (STREAM-YN)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Over fullLevelOpens, two taut combinations differing mod N are pointwise distinct: agreement
at w ⟹ base-changed sections agree over κ(w) (sections_residue_eq_of_base_eq) ⟹ (composed with
U.ι, via base_mem_pointVanishSet_of_comp_eq) the nonzero difference combPoint vanishes at
v=U.ι(w) ⟹ contradicts v∈fullLevelOpens (combPoint_emod N-periodicity + Fin N×N index match).
Plus helpers: asSection_zero, combPoint_sub, zsmul_emod_eq, combPoint_emod, killing,
pointVanishSet_congr. (STREAM-YN)

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

Over fullLevelOpens the tautological pair is a full-level structure: N² combinations N-killed
(smul_N_taut sections) + pairwise pointwise-distinct (combSec_ne_of_diff + Fin(N²)≃Fin N×Fin N
via div/mod, divisor-of-small-difference nlinarith) ⟹ sectionsDivisor = torsionIdeal
(sectionsDivisor_ideal_eq_torsionIdeal). Plugs directly into isOpenImmersion_levelSpaceΓι_of_taut.
Remaining for [YF-ETALE]: [YF-⊆] range levelSpaceΓι ⊆ fullLevelOpens. (STREAM-YN)

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

isOpenImmersion_levelSpaceΓι_full = isOpenImmersion_levelSpaceΓι_of_taut ∘ [YF-⊆] ∘ [YF-⊇].
YFullRoute.isOpenImmersion_levelSpaceΓι now PROVEN (consumes it); YFullRoute sorries 6→5.
[YF-ETALE] etale_fullLevelSpaceStruct now depends ONLY on range_levelSpaceΓι_subset ([YF-⊆], a
documented reduced-fibre gate: full-level pt ⟹ N² combos fibrewise distinct via E[N] étale-reduced,
the T-D8-bridge register) + the boarded torsionπ_etale' box. All of [YF-⊇] is sorry-free. (STREAM-YN)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ED (NaiveProblems:211)

New Moduli/TransportPoint.lean: transportPoint (fibre-point transport along curveIsoPullback) +
transportPoint_add (mirrors transportSection_add_of_isMonHom at arbitrary base t via the same
isMonHom_of_pointedIso_records) + transportPointEquiv (AddEquiv) + transportPoint_pull_pullSection
(dictionary → transportSection_pullSection) + AddEquiv.mem_closure_image (closure transport).
NaiveProblems: isNaiveFullLevel_asSection_pull (baseChange←Y via baseChangeEquiv closure-transport)
+ isNaiveFullLevel_pullSection (X←baseChange via transportPointEquiv) → map-field discharged. The
full-level closure clause (arbitrary fibre points) needed the fibre AddEquiv the Γ₁ kernel-route
avoided — the v10.176 scope correction, now built. Unblocks the Y(N) representability half → MASTER. (STREAM-YN)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ted to YFullTE9)

Per v10.111/117 relocation doctrine: the T-E9 master (zero code-consumers) relocates from
NaiveProblems (the held by-sorry, now retired with a pointer) to new ModularCurve/YFullTE9.lean
downstream of YFullRoute, closed by . The Y(N)
representability theorem is now connected end-to-end through the YFULL route — consuming this
session's [YF-⊇]/[YF-CLOPEN] + the now-total gammaFullNaiveProblem functor (map-field) — and
reduced to EXACTLY the two boarded cross-charter gates: gammaFullNaive_rigid ([YF-NOETH]/CHARTER-P3B3)
and exists_representing_smooth_affine ([YF-GEOM]/CHARTER-FP4). Full build green (3949 jobs). (STREAM-YN)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…frontier COMPLETE (rest cross-charter-gated) (STREAM-YN)
comboFamily_injective_iff_closure_top + range_comboFamily_eq_closure:
over a finite group G of order N^2 (T-B6, E[N]_k̄ ≅ (ℤ/N)²), the N²
combinations [a]P+[b]Q are pairwise distinct iff P,Q generate G — the
fibrewise heart of KM 1.4.4. Axiom-clean (propext/choice/Quot.sound).

Serves coordinator order 2 (T-D8-bridge fullLevel_divisor_iff_naive_gen)
step D; steps A/B (scheme↔affine full-set bridge, KM 1.9-1.10) next.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The naive full-level generation condition over a geometric fibre is
reshaped, sorry-free, into group-theoretic distinctness of the N²
combinations:
  naiveClosure_iff_torsion_filled       : condition ⟺ closure fills E[N]_t
  closure_pair_eq_iff_closure_top       : ambient closure = H ⟺ closure_H = ⊤ (axiom-clean)
  naiveClosure_iff_subgroup_closure_top : composed, route-agnostic
  finite_fibreTorsion / natCard_fibreTorsion : #E[N]_t = N² (T-B6)
  naive_iff_comboFamily_injective       : naive gen ⟺ N² combos distinct

Composes step D + T-B6. Own proofs sorry-free; inherits only T-B6's
registered black-box sorryAx. Fibre half of KM 1.4.4; scheme half
(sectionsDivisor.ideal = torsionIdeal ⟺ fibrewise distinct, KM 1.9-1.10)
remains — no repo infrastructure yet, boarded for coordinator.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…me-side ⟹ re-scoped to elementary support-counting (not multi-week)

Documents the precise, de-risked route for the last gate (fullLevel_divisor_iff_naive_gen
⟹ / [YF-⊆]): support tool CartierDivisor:1052 + T-B6 count + pigeonhole. Corrects the
prior multi-week-crux framing with concrete evidence.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ivisor_baseChange) for the T-D8-⟹/[YF-⊆] gate

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

The section divisor commutes with base change: (sectionsDivisor π P).ideal.comap
(pullback.fst π t) = sectionsDivisor of the base-changed sections of pullback.snd π t.
Assembled from baseChange_ideal + ker_sectionBaseChange + comap_prod. The general
(non-elliptic-curve-specific, curveIsoPullback-free) fibre-reduction step for the
[YF-⊆] / fullLevel_divisor_iff_naive_gen ⟹ argument.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…support — T-D8-⟹ fibre support-covering

- sectionsDivisor_support (CartierDivisor, public wrapper of the private support-prod):
  (sectionsDivisor π P).ideal.support = ⋃ᵢ range(Pᵢ.base).
- sectionsDivisor_comap_support (SectionsDivisorBaseChange): the base-changed section
  divisor's support = ⋃ᵢ range(base-changed section) — combines sectionsDivisor_baseChange
  with the support wrapper. Axiom-clean.

The topological core of the [YF-⊆]/fullLevel_divisor_iff_naive_gen ⟹ argument: with a
divisor equality, the union of fibre section images = fst⁻¹(J.support). Full build green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…identification pinned as remaining gate

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…hole for T-D8-⟹

If a finite family f : ι → X has range exactly T with #T = #ι, then f is injective.
The counting core of the [YF-⊆] distinctness argument: N² combinations covering the N²
fibre torsion points must be pairwise distinct. Axiom-clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CDBirbeck and others added 29 commits July 13, 2026 09:07
…e of the T-D8-⟹ count

For an essentially-finite-type formally-étale algebra A over a separably closed field K,
#PrimeSpectrum A = finrank K A, via mathlib's equivPiOfIsSepClosed (A ≃ₐ (PrimeSpectrum A → K)).
The algebraic core of the reduced-fibre point count (KM 3.7.1) for [YF-⊆]. Axiom-clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…eme<->algebra glue remains (9 lemmas this session)

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

For A an ess-finite-type formally-étale algebra over a sep-closed field k, Spec A has
finrank k A topological points (↥(Spec A) defeq PrimeSpectrum A + the algebra count core).
The scheme-level reduced-fibre point count (KM 3.7.1) for [YF-⊆].

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…torsion-fibre connection is the sole remaining glue

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… the fibre count

Source of a finite morphism to an affine scheme is affine (via HasAffineProperty @IsAffineHom).
The clean affineness step for the torsion-fibre point count; the algebra-instance derivation +
.finrank connection (needs CartierDivisor import + ΓSpecIso threading) is the remaining fiddly glue.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… glue concretely bounded (11 lemmas)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ation (KM 3.7.1)

A finite étale scheme over a separably closed field has finrank-many topological points
(= as many points as sections). Mirrors natCard_sections_eq_finrank, reusing its full
affine↔algebra translation (isoSpec ψ, Algebra.Etale instance, finrank_SpecMap) and
algHomEquivPrimeSpectrum for the points↔algHoms↔PrimeSpectrum bridge. This cracks the sole
remaining hard piece of the T-D8-⟹ / [YF-⊆] argument. Axiom-clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… = N² (T-B6 point form)

Applies natCard_carrier_eq_finrank to (E.baseChange t).torsionπ N (finite étale over k̄) +
torsion_rank. The reduced-fibre point count for [YF-⊆], own-proof sorry-free (inherits only
the registered torsion black boxes via torsion_rank, as T-B6 does).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rd_carrier_eq_finrank + natCard_torsion_fibre); only plumbing remains

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…range helper for [YF-⊆]

Over a single-point domain (a geometric point Spec k), ⋃ᵢ range(fᵢ) = range(i ↦ fᵢ default) —
turns the support-covering into a Set.range fit for the pigeonhole. Axiom-clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… (T-D8-⟹ piece a1)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…l.support)=N² (T-D8-⟹ piece a)

Via torsionIdeal_support (support=range torsionι) + pullback.range_snd + closed-immersion
injectivity + the pasting iso (pullbackRightPullbackFstIso + torsion_baseChange_isPullback) to
natCard_torsion_fibre=N². Completes piece (a) of the [YF-⊆] count chain.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…lemmas, only wiring + (d) curveIsoPullback remain

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…⟹ distinct base-points (T-D8-⟹ b+c)

Assembles sectionsDivisor_comap_support + iUnion_range_eq_range_eval + pigeonhole +
natCard_fibre_torsion_locus: the N² base-changed sections have pairwise-distinct base-points.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…8-⟹ piece d)

Distinct base-points force the pulled points distinct (via the sectionBaseChange lift structure).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…n COMPLETE (KM 3.7.1)

The Drinfeld full-level divisor equality implies naive fibrewise generation. Assembles the
whole ⟹ chain: count-identification → piece (a) #fst⁻¹=N² → (b+c) distinct base-points →
(d) distinct pulls → (e) comboFamily injective via naive_iff. The decisive direction for [YF-⊆].

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…(18 lemmas; count cracked + ⟹ proven)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The tautological pair is full-level over levelSpaceΓ (via levelSpaceΓ_spec with h=𝟙),
mirroring exists_tautSection. The starting point for range_levelSpaceΓι_subset ([YF-⊆]):
full-level at a levelSpaceΓ point → (naive_gen_of_divisor_eq ⟹) generation → no combo vanishes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The taut pair generates E[N] at every geometric point of levelSpaceΓ — direct application of the
T-D8-bridge ⟹ (naive_gen_of_divisor_eq) to taut_isFullLevel_over_levelSpaceΓ. Clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…remaining wiring scoped

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…e A (fibre)

If P,Q generate G (order N²), every nonzero-indexed combo [a]P+[b]Q ≠ 0 (step D corollary).
The no-vanishing input for range_levelSpaceΓι_subset. Axiom-clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…)=κ(y), geom pt factors); tools mapped

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…-⊆] piece B enabler

For a closed immersion, the residue-field map is an iso (κ(f x)≅κ(x)): injective (field hom) +
surjective (SurjectiveOnStalks + residue_surjective, via the residue_residueFieldMap naturality).
Unlocks factoring fromSpecResidueField through closed immersions for piece B. Axiom-clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…e B factoring

A geom point at w factors through a closed immersion given w ∈ range (via residueFieldMap iso +
SpecMap_residueFieldMap naturality). The key enabler for piece B: the geom pt at w factors through
BOTH levelSpaceΓ and the agreement locus, giving combPoint≠0 and combPoint=0 at the same point.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…eFieldMap iso + factoring); 24 lemmas

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… + contradiction structure

The fullLevelOpenSet membership reduces to: hw (w∈range levelSpaceΓι) + hmem (w∈pointVanishSet
combPoint) + hcd (cd≠0) ⊢ False. The contradiction (geom pt factors through both closed immersions
via exists_fromSpecResidueField_factor: levelSpaceΓι→combPoint≠0, agreement locus→combPoint=0) is
the remaining ~60-80 line integration of built tools. sorry marks the fibre-connector integration.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…CLOPEN]/[YF-ETALE]★ discharged

The reduced-fibre distinctness leaf of Y(N) (KM 3.7.1): the full-level closed
immersion levelSpaceΓι lands in the open fullLevelOpens, so it is an open
immersion (isOpenImmersion_levelSpaceΓι_full), and the Γ(N)-presentation is
étale (etale_fullLevelSpaceStruct in YFullRoute is now genuinely discharged).

New:
- comb_ne_zero_of_generates (FullLevelFibre): group core — over a geometric
  point where N is invertible, if two N-torsion points generate the fibre's
  N-torsion, no nonzero [c]A+[d]B (c,d ∈ [0,N), not both 0) vanishes.
  Pigeonhole via comboFamily_ne_zero_of_closure_top + natCard_fibreTorsion (T-B6).
- taut_generates_restrict (FullLevelClopen): pushes taut_generates_over_levelSpaceΓ
  through Point.baseChangeEquiv + Point.castBase (assoc) into restrict form.
- range_levelSpaceΓι_subset Part 2: at the alg-closed geometric point over w
  (factored through levelSpaceΓι), the taut pair generates ⟹ combPoint(cd)≠0,
  contradicting Part 1's agreement-locus vanishing (hzero).

Root ModularCurves.lean now imports FullLevelClopen + FullLevelDivisorBridge.
Full build green (4212 jobs); sorry-free; axioms = the pre-existing T-B6
registered KM black-boxes (sorryAx via BB-DIFF/BB-QF/BB-FLAT/BB-DEG), no new sorry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…es_divisor_eq (full iff now sorry-free downstream)

The reverse of the T-D8-bridge (KM 3.7.1 / 1.4.4): fibrewise generation ⟹ the
Drinfeld full-level divisor equality. The board had flagged this as needing the
full-set-of-sections / T-D2 globalization ("missing infra"); it does NOT.

Route (cheaper than T-D2): if two combination sections [a]P+[b]Q collide
topologically at u ∈ S, their difference hits the RATIONAL identity section at u,
so sections_residue_eq_of_base_eq (separatedness ⟹ forced residue-field agreement,
no Galois ambiguity since the collision point is rational) upgrades the collision to
residue-field agreement; pulling to the geometric point over u makes the difference
vanish, but generation makes the N² combinations injective there
(naive_iff_comboFamily_injective) — forcing the two indices equal. Pairwise
topological distinctness then feeds the [YF-⊇] divisor chain
(sectionsDivisor_ideal_eq_torsionIdeal).

New in FullLevelClopen:
- naive_gen_implies_divisor_eq — the ⟸ content (~50 lines).
- fullLevel_divisor_iff_naive_gen_downstream — the full iff (⟹ = naive_gen_of_divisor_eq,
  ⟸ = naive_gen_implies_divisor_eq), the sorry-free downstream discharge of the
  register box Basic.fullLevel_divisor_iff_naive_gen.

Builds; axioms = the pre-existing T-B6 registered KM black-boxes (no new sorry).
NOTE for coordinator: Basic.fullLevel_divisor_iff_naive_gen (:115) + isFullLevel_iff_naive
(:130) are now dischargeable by relocation (byte-identical statements move downstream to
FullLevelClopen; consumers YFullRoute:552 + GammaHRepresentability:641 re-point). Cross-cutting.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…MPLETE + T-D8-bridge ⟸ PROVEN (full iff sorry-free downstream); relocation boarded for coordinator

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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>
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