Skip to content

Import Sendov's conjecture and the Phelps–Rodriguez conjecture - #556

Merged
Vilin97 merged 18 commits into
mainfrom
claude/daily-sendov-20261001
Oct 2, 2026
Merged

Vilin97 merged 18 commits into
mainfrom
claude/daily-sendov-20261001

Conversation

@Vilin97

@Vilin97 Vilin97 commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Independent integration verification — 2026-10-02, GPT-6.1-Sol/Ultra

PR #556 was merged by repository actor Vilin97 at 2026-10-02 19:11:53 UTC, from reviewed head cf9b8169d2a6112f546a89b96bc0f1a2e7be5232 to squash 4a4927fa3bc323dc9eb58c4287b7fa6ebf79cc7d. This review worker independently verified that result and did not execute the merge.

All 72 owned Lean files, the entry module and exact project card are identical to accepted source c1acd097dd462de31fca9edc80f5ef2071a98461; the mathematical, Apache licensing and first-party AI provenance verdicts carry forward. The generated project root has 71 sorted, distinct public imports, and the pool root adds its single Sendov project import. The same source tree and card are present in current main 710eb3b9b8d815bb00666a9a723c24d1896df675, whose final metadata commit changes only NOTICE and README.

Exact-head Lean Action CI 37048443229 completed SUCCESS: generated index, project/challenge builds, declaration lint, text style, repository quality, artifact retention and protected aggregate Build project passed. Documentation preflight and content separation also passed. Retained artifact 11246273192 is 26,114,805 bytes and unexpired through 2026-10-16T19:08:18Z; its manifest was independently matched to every exact-head source hash and all three toolchain/build inputs. There are no review threads or later substantive changes request.

Earlier draft, pending-CI and main-integration wording below is historical and superseded by this completed integration. No gate, waiver or mathematical source change was made by this review worker.


2026-10-02 current-status correction — substantive source approval carries forward. PR #556 is OPEN and ready for review at c800faa0d810858cb418ef6106a1126fe3187563 (isDraft: false). Its complete LeanPool/Sendov source tree, entry module, generated index, and project card are byte-identical to the accepted c1acd097dd462de31fca9edc80f5ef2071a98461 head. The previously verified AI proof provenance and mathematical source verdict remain supported. No source condition is newly opened.

Exact-head Lean Action CI 37024042868 completed successfully in rebase mode at this head. The generated index, combined Lean root, combined metadata validation, Check rebased root, and aggregate Build project passed. Previously validated modules were restored, so the full-validation fallback was skipped. All three required contexts pass. Retained rebase-project-build artifact 11234373631 is tied to this exact run/head and is unexpired through 2026-10-16T15:15:48Z.

The source is accepted for normal integration. This green run validates the existing head on base 0a29d01e8da977309a0aea5065ce0d1855a5da82; before integration, refresh against latest main and pass the protected checks for the resulting successor, then recheck threads and branch state. This existing COMMENTED review records the source verdict from the author account. Earlier draft and old-head status wording below is historical and superseded by this checkpoint.


Historical acquisition description

Imports Terence Tao's Lean formalization of Sendov's conjecture and the Phelps–Rodriguez conjecture in full generality, following Tao's digestion of Lech Mazur's proof, together with its reusable infrastructure: the top case of Maclaurin's inequality and multiset AM–GM (Multiset.esymm_card_pred_le, Multiset.prod_le_mean_pow), the defect inequality on the closed unit disk, a sharp bound on log (sinh h / h), a packed-exponentiation bridge for exact moment integrals, and a new kernel-checked Bernstein-certificate module.

Draft: exact-head CI pending. The separately merged project-root migration (#558 and #559) resolved the former LeanPool.lean capacity blocker. This PR now adds LeanPool/Sendov/Imports.lean, a generated project-root index with 71 unique, sorted public import lines covering every Sendov source module, and adds its one import to LeanPool.lean. The reviewed source and project card are preserved. Lean Action CI for head e648cfb78 is still running; current main is integrated at e648cfb78; keep the PR draft until the required checks pass on this exact head. This PR changes no gate, generator, workflow, linter setting, waiver, or unrelated project.

Significance and dates

  • Sendov's conjecture (1962): every zero of a degree-n ≥ 2 polynomial with all zeros in the closed unit disk has a critical point within distance 1. The Phelps–Rodriguez strengthening makes the distance strict unless the zero lies on the unit circle and p = c (zⁿ − aⁿ); the boundary case recovers Rubinstein's theorem (Sendov.rubinstein_one).
  • First public announcement: Tao's blog post A digestion of the proof of Sendov's conjecture, published 2026-08-12 23:10:54 UTC (https://terrytao.wordpress.com/2026/08/12/a-digestion-of-the-proof-of-sendovs-conjecture/), which states that the entire argument was formalized in Lean. The repository was created 2026-08-12 03:52:09 UTC and the proof closed on 2026-08-12 (commit "Sendov's conjecture and the Phelps-Rodriguez conjecture, in full", 14:18 PDT); the commits after that date are documentation, CI and metadata only. Eligible window of this run: [2026-08-01T09:45:00Z, 2026-09-24T09:45:00Z).
  • Prior formalization: Lech Mazur's earlier Lean proof at ProofAtlas (1,160 files, 92,816 lines as reported upstream), which the upstream README credits with priority. This development shares no code with it, is six times smaller, and additionally states the Phelps–Rodriguez equality classification. Neither is in the pool.

Upstream, license, provenance

  • Source: https://github.com/teorth/sendov at 1ddea92d89f951a0a7cbbffa6c267cf7e6640b1d (public). LICENSE is Apache-2.0; every file carries Tao's copyright header, retained verbatim.
  • Provenance AI: the upstream README states that essentially all Lean source was written by Claude Opus 5 in Claude Code under Tao's direction and review, with Tao supplying the informal proof, staged plans, and mathematical decisions. Recorded in the card's provenance_note.

Scope

69 of the 76 upstream modules: exactly the dependency closure of Sendov.Conjecture, plus the entry module and the new FiniteRange/Certificate.lean (71 modules, 16,850 lines). Not imported: six development cross-check modules (Degree6, Degree8, Degree20, Degree20Packed, Degree53Packed, Degree97Packed) and Reduce.lean, none of which the main theorems depend on. The upstream Challenge/Solution comparator pair restates the same two theorems and was not duplicated.

Porting changes

  • Lean/Mathlib v4.35.0-rc3 and the module system (public import, @[expose] public section); Mathlib.Basic.Real.Basic and explicit tactic imports where module-system Mathlib files no longer re-export them.
  • Certificates checked by the kernel. Upstream closed each of the 31 batch files with a ring identity for a degree-up-to-78 Bernstein expansion and a field_simp; ring denominator clearing, each under maxHeartbeats 2000000 and maxRecDepth 4000000, with linter.style.longLine disabled around numerals of up to 29,000 digits; the degree-58 endgame certificate used maxHeartbeats 4000000. The new Sendov.FiniteRange.Certificate module defines list-polynomial powers, Bernstein expansion (Sendov.bern), the batch numerator Sendov.batchP n₀ n₁ k L Nmom, and proves once, for symbolic n₀ n₁ k, that positivity of batchP gives the batch bound (Sendov.batch_lt_one) and that positive Bernstein coefficients give positivity (Sendov.pev_pos_of_bern). Each batch now supplies its data (Lc, betac, tauc, Nmomc, Bc) and discharges every closed computation with decide +kernel; numerals over 90 digits are assembled from decimal chunks by Sendov.big. The Bernstein coefficients are those of upstream scaled by the integer factor between upstream's cancelled numerator and batchP; a Python cross-check reproduced every upstream numerator and certificate exactly before the Lean files were generated. The endgame (LargeDegree/Endgame.lean) uses the same infrastructure, with (3+α)^48 and γ⁴ generalized before clearing denominators so nothing of degree 48 is expanded.
  • Reduction/Alpha17.lean: the four nlinarith calls that needed maxHeartbeats 1000000 are closed from one explicit product hint each (nlinarith only [...]).
  • Batch namespaces and module names renamed to UpperCamelCase (Batch50To51, Degree50To51) for Mathlib's naming linters; docstrings added to the generated constants; one box-drawing glyph in a comment diagram replaced.
  • No theorem statement was changed. All 96 set_option overrides are gone; no nolint, no maxHeartbeats, no maxRecDepth, no linter disables remain.

Trust and axiom audit

  • #print axioms over all 733 enumerated declarations of the imported modules: only propext, Classical.choice, Quot.sound. The pool's compiled-environment option/backdoor audit over LeanPool.Sendov reports no finding.
  • No sorry, axiom, native_decide, unsafe, partial, opaque, #eval, or floating point; decide +kernel is kernel reduction and introduces no ofReduceBool.

Historical local checks (worktree on pre-migration base 220627f7d6, Mathlib v4.35.0-rc3)

Check Result
lake build LeanPool.Sendov (clean project artifacts) pass, 0 warnings
lake exe runLinter LeanPool.Sendov pass
lake exe lint-style LeanPool pass
lake exe mk_all --module --check pass
quality --static-only only the former root-index cap failed (LeanPool.lean:1); the project-root migration supersedes this result
scoped #print axioms + option-backdoor audit (quality internals) 0 errors
proof-size (200 lines) and file-size caps pass

These local results predate the project-root migration. The current exact-head Lean Action CI run is pending; its assembled build, index check, linters, and repository quality check will establish the current result.

Compile-time measurements

Same 16-vCPU shared VM, warm Mathlib oleans, project artifacts deleted before each run, /usr/bin/time -v lake build LeanPool.Sendov; other jobs were active, so numbers are observed, not isolated.

Baseline (mechanical port, upstream certificates) Optimized (this PR)
Wall 6 min 22.2 s 1 min 4.4 s
User CPU 1948.4 s 225.7 s
Serial sum of per-module wall times (16 parallel jobs) 4263.5 s 450.1 s
Max RSS 6.6 GB 1.8 GB
Warnings 1,126 (long lines) 0

Per-module wall times inside the parallel clean builds, before → after: Degree80_100 362 s → Degree80To100 21 s; Degree70_79 311 s → 18 s; Degree64_69 289 s → 16 s; the 31 batch files 3,916 s → 305 s in total (built alone, Degree80To100 takes 3.6 s); Endgame 112 s → 6.5 s; Alpha17 50 s → 9.6 s; the new Certificate module 2.2 s. The remaining time is ordinary analytic elaboration (Monotone 19 s, Simplified 12 s, Stat 10 s); no further material safe shortcut is evident without changing statements.

🤖 Generated with Claude Code

Port of teorth/sendov at 1ddea92d89f951a0a7cbbffa6c267cf7e6640b1d (Apache-2.0,
Lean source written by Claude Opus 5 under Terence Tao's direction) to Lean
v4.35.0-rc3 and the module system: 69 upstream modules in the closure of
Sendov.Conjecture plus a new kernel-checked Bernstein-certificate module.

The 31 batch certificates and the large-degree endgame are checked by
`decide +kernel` through list-polynomial identities instead of `ring` under
raised heartbeat budgets; numerals beyond 90 digits are chunked; the
Alpha17 bound uses explicit product hints. No set_option remains, and the
clean project build drops from 1948 s to 226 s of CPU time.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Vilin97

Vilin97 commented Oct 1, 2026

Copy link
Copy Markdown
Collaborator Author

/review

Please review the mathematics and source claims on head d52dc1b66d. Local checks on this head: clean warning-free project build, lake exe runLinter LeanPool.Sendov, lake exe lint-style LeanPool, mk_all --module --check, proof-size/file-size caps, scoped #print axioms over 733 declarations and the option-backdoor audit all pass. The one expected repository quality failure is the generated root index: main has 9,997 of the 10,000 permitted code lines and this import needs 71 more. The PR stays draft with merge blocked; no gate is changed.

@Vilin97

Vilin97 commented Oct 1, 2026

Copy link
Copy Markdown
Collaborator Author

@greptileai please review this draft PR at d52dc1b66d against the configured Lean Pool rubric. The project passes the local build, declaration and style linters, and the trust audits; it stays draft because the generated root index exceeds an already-full repository size cap, as documented in the description. Please assess cross-file integration (in particular the new FiniteRange/Certificate.lean infrastructure and the regenerated batch files), reusable abstractions, completeness, maintainability, and the measured compile-time results.

@greptile-apps

greptile-apps Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Advisory cross-file review against Lean Pool's supervisory rubric. This is not by itself a significance, source-verification, or merge verdict.

Retrigger

[Low risk] Adds mathematical proof library for polynomial conjectures.

No new issue from the post-review changes prevents merging.

Summary

The PR imports the Sendov and Phelps–Rodriguez formalization, its supporting proofs and certificates, and the project registry and import entries. Since the previous review, the branch merged base-branch changes to generated metadata; the Sendov source and project card did not change.

Reviews (6) · Last reviewed commit: "Merge remote-tracking branch 'origin/mai..."

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Proof profile (new / modified Lean files)

lake build wall time (changed modules): 164.34 s (= 2.74 min) — user 432.10 s, sys 47.69 s.

This build covers the changed modules and their dependency cones on top of the restored cache. The serial per-file sums below are useful for ranking slow files, not as a build budget.

Total heartbeats: 3,562,352 maxHeartbeats units across 70 valid files (16,850 added LOC).

Sum of lean --profile: 382726.4 ms (= 382.73 s) across 71 valid files. Import-excluded time: 289844.4 ms (= 289.84 s).

Count-heartbeats wall-clock total: 680.70 s. Repeated import cost inside lean --profile: 92882.0 ms (= 92.88 s).

Heartbeat values sum disjoint root command traces with trace.profiler.useHeartbeats and synchronous elaboration, converted from raw allocations to maxHeartbeats units by dividing by 1000. They include command elaboration and kernel checking, exclude imports, and include profiler overhead; they are not comparable to the deprecated linter's totals. Per-file wall clocks are measured under parallel load and are noisier than heartbeats.

LOC counts added lines in the profiled Lean files from this PR diff.

File LOC Heartbeats (maxHB) Count wall (s) lean --profile (s) Without import (s) Import (s) Commands Errors
LeanPool/Sendov/LargeDegree/Monotone.lean 365 391,627 40.49 22.63 21.18 1.45 35 0
LeanPool/Sendov/Reduction/Simplified.lean 271 327,967 40.73 16.90 15.52 1.38 16 0
LeanPool/Sendov/Analytic/OriginExact.lean 260 247,910 37.58 14.39 13.07 1.32 28 0
LeanPool/Sendov/Reduction/Stat.lean 141 188,800 28.94 10.72 9.37 1.35 14 0
LeanPool/Sendov/Analytic/Polar.lean 293 150,968 18.02 6.63 5.33 1.30 34 0
LeanPool/Sendov/FiniteRange/Batch.lean 196 135,249 22.83 8.73 7.49 1.24 20 0
LeanPool/Sendov/Common/Sinh.lean 315 131,129 17.81 8.14 6.99 1.15 39 0
LeanPool/Sendov/Analytic/Origin.lean 458 114,400 25.64 8.21 6.84 1.37 69 0
LeanPool/Sendov/Analytic/LowDegree.lean 224 105,547 11.93 6.05 4.70 1.35 33 0
LeanPool/Sendov/Analytic/Maclaurin.lean 229 95,055 13.23 4.78 3.91 0.88 26 0
LeanPool/Sendov/Common/Chord.lean 295 91,739 17.46 6.17 4.87 1.30 23 0
LeanPool/Sendov/Counterexample/Identities.lean 447 84,029 11.45 5.33 4.03 1.30 76 0
LeanPool/Sendov/FiniteRange/PackBridge.lean 643 82,658 13.47 6.49 5.22 1.27 105 0
LeanPool/Sendov/Analytic/Jsum.lean 256 77,268 18.77 5.46 4.12 1.34 22 0
LeanPool/Sendov/Reduction/BetaBound.lean 159 74,187 12.26 6.11 4.69 1.42 17 0
LeanPool/Sendov/Boundary.lean 340 62,552 12.36 5.21 3.93 1.28 31 0
LeanPool/Sendov/LargeDegree/Endgame.lean 203 60,893 8.17 5.43 4.03 1.40 23 0
LeanPool/Sendov/FiniteRange/Certificate.lean 229 50,012 12.07 4.51 3.26 1.25 38 0
LeanPool/Sendov/FiniteRange/Degree7.lean 116 49,925 10.95 3.98 2.72 1.26 20 0
LeanPool/Sendov/Common/Basic.lean 135 49,360 6.52 3.76 2.47 1.29 26 0
LeanPool/Sendov/Interior.lean 175 44,365 12.99 3.95 2.58 1.37 10 0
LeanPool/Sendov/FiniteRange/Degree80To100.lean 785 43,953 11.31 13.51 12.27 1.24 21 0
LeanPool/Sendov/FiniteRange/Degree5.lean 119 37,566 7.27 3.52 2.23 1.29 20 0
LeanPool/Sendov/FiniteRange/Degree70To79.lean 615 36,316 7.08 10.01 8.71 1.30 21 0
LeanPool/Sendov/FiniteRange/Degree64To69.lean 542 32,362 6.77 8.17 6.91 1.26 21 0
LeanPool/Sendov/Analytic/Defect.lean 127 32,193 7.91 2.77 1.74 1.03 16 0
LeanPool/Sendov/FiniteRange/Degree60To63.lean 488 29,894 7.99 7.07 5.76 1.31 21 0
LeanPool/Sendov/FiniteRange/Moments.lean 135 28,832 6.36 2.82 1.50 1.32 16 0
LeanPool/Sendov/FiniteRange/Degree58To60.lean 435 28,497 7.37 6.80 5.48 1.32 21 0
LeanPool/Sendov/FiniteRange/Degree56To58.lean 420 27,484 7.04 6.36 5.10 1.26 21 0
LeanPool/Sendov/Common/Quadratic.lean 95 27,391 6.33 2.63 1.34 1.29 25 0
LeanPool/Sendov/FiniteRange/Degree54To55.lean 406 26,564 6.19 6.05 4.77 1.28 21 0
LeanPool/Sendov/FiniteRange/Degree52To53.lean 386 25,550 6.01 5.65 4.37 1.28 21 0
LeanPool/Sendov/FiniteRange/Degree50To51.lean 370 24,646 7.01 5.56 4.25 1.31 21 0
LeanPool/Sendov/FiniteRange/Recurrence.lean 266 24,029 7.20 3.33 2.02 1.31 59 0
LeanPool/Sendov/LargeDegree/Tail.lean 98 23,963 5.89 2.56 1.22 1.34 15 0
LeanPool/Sendov/FiniteRange/Degree48To49.lean 351 23,698 6.91 5.26 3.95 1.31 21 0
LeanPool/Sendov/FiniteRange/Degree46To47.lean 327 22,751 5.64 4.95 3.69 1.26 21 0
LeanPool/Sendov/FiniteRange/Degree44To45.lean 306 21,854 6.14 4.68 3.44 1.24 21 0
LeanPool/Sendov/Reduction/Setup.lean 81 21,215 6.26 2.55 1.19 1.36 19 0
LeanPool/Sendov/FiniteRange/Degree42To43.lean 262 20,668 5.82 4.56 3.29 1.27 21 0
LeanPool/Sendov/FiniteRange/Degree40To41.lean 225 19,710 5.91 4.21 2.95 1.26 21 0
LeanPool/Sendov/Reduction/Polar.lean 92 19,626 6.34 2.59 1.23 1.36 12 0
LeanPool/Sendov/FiniteRange/Degree38To39.lean 216 19,147 4.38 4.10 2.83 1.27 21 0
LeanPool/Sendov/FiniteRange/Degree32To33.lean 192 18,661 4.30 3.84 2.53 1.31 21 0
LeanPool/Sendov/FiniteRange/Degree36To37.lean 207 18,493 5.96 4.00 2.72 1.28 21 0
LeanPool/Sendov/FiniteRange/Degree34To35.lean 199 17,658 5.82 3.87 2.58 1.29 21 0
LeanPool/Sendov/FiniteRange/OddBound.lean 77 16,640 5.29 2.14 0.87 1.27 13 0
LeanPool/Sendov/FiniteRange/Degree30To31.lean 183 16,628 5.64 3.64 2.33 1.31 21 0
LeanPool/Sendov/FiniteRange/Degree24To26.lean 162 16,384 6.04 3.59 2.30 1.29 21 0
LeanPool/Sendov/FiniteRange/Degree28To29.lean 176 16,129 4.25 3.55 2.25 1.30 21 0
LeanPool/Sendov/Reduction/Main.lean 93 16,089 7.54 2.52 1.17 1.35 7 0
LeanPool/Sendov/FiniteRange/Degree22To24.lean 155 15,963 5.25 3.58 2.27 1.31 21 0
LeanPool/Sendov/FiniteRange/Degree26To27.lean 169 15,655 5.19 3.45 2.12 1.33 21 0
LeanPool/Sendov/FiniteRange/Degree20To22.lean 149 15,576 5.00 3.32 2.02 1.30 21 0
LeanPool/Sendov/FiniteRange/Degree18To20.lean 143 15,211 5.55 3.33 2.06 1.27 21 0
LeanPool/Sendov/FiniteRange/Degree16To18.lean 137 14,880 5.69 3.19 1.94 1.25 21 0
LeanPool/Sendov/FiniteRange/Cover.lean 184 13,675 7.03 2.53 1.26 1.27 9 0
LeanPool/Sendov/FiniteRange/Degree6To6.lean 111 13,551 4.59 3.10 1.81 1.29 21 0
LeanPool/Sendov/FiniteRange/Degree14To15.lean 132 13,409 4.85 2.94 1.69 1.25 21 0
LeanPool/Sendov/FiniteRange/Degree12To13.lean 127 13,139 4.54 2.92 1.66 1.26 21 0
LeanPool/Sendov/FiniteRange/Degree10To11.lean 122 12,846 5.21 2.91 1.66 1.25 21 0
LeanPool/Sendov/FiniteRange/Degree8To9.lean 115 12,586 5.20 2.90 1.62 1.28 21 0
LeanPool/Sendov/FiniteRange/Pack.lean 245 12,004 3.91 1.82 1.09 0.73 49 0
LeanPool/Sendov/Conjecture.lean 173 11,759 5.89 2.37 1.03 1.34 24 0
LeanPool/Sendov/Counterexample/Factor.lean 137 6,739 5.42 2.04 0.73 1.31 8 0
LeanPool/Sendov/Common/Rpow.lean 66 3,421 3.54 1.76 0.46 1.30 16 0
LeanPool/Sendov/Defs.lean 120 1,289 3.21 1.56 0.34 1.22 11 0
LeanPool/Sendov/Main.lean 57 421 3.45 1.72 0.34 1.38 8 0
LeanPool/Sendov.lean 37 0 3.54 3.32 0.27 3.05 3 0
LeanPool/Sendov/Reduction/Alpha17.lean 285 — — 23.53 22.18 1.35 19 1
Total 16,850 3,562,352 680.70 382.73 289.84 92.88 1705 1

Aggregate phase totals

Phase Time
interpretation 100622.0 ms (= 100.62 s)
import 92882.0 ms (= 92.88 s)
blocked (unaccounted) 55643.1 ms (= 55.64 s)
typeclass inference 41559.3 ms (= 41.56 s)
type checking 32175.6 ms (= 32.18 s)
tactic execution 15218.0 ms (= 15.22 s)
norm_num 11774.8 ms (= 11.77 s)
simp 6635.8 ms (= 6.64 s)
elaboration 5742.6 ms (= 5.74 s)
ring 5529.1 ms (= 5.53 s)
tacticAnalysis 2616.1 ms (= 2.62 s)
initialization 2433.9 ms (= 2.43 s)

Slowest changed modules (from lake build)

Changed module Lake time
LeanPool.Sendov.Reduction.Stat 22.00 s
LeanPool.Sendov.Reduction.Alpha17 21.00 s
LeanPool.Sendov.LargeDegree.Monotone 17.00 s
LeanPool.Sendov.FiniteRange.Batch 14.00 s
LeanPool.Sendov.FiniteRange.Degree80To100 14.00 s
LeanPool.Sendov.Reduction.BetaBound 13.00 s
LeanPool.Sendov.Reduction.Simplified 12.00 s
LeanPool.Sendov.Analytic.Polar 11.00 s
LeanPool.Sendov.Analytic.Origin 11.00 s
LeanPool.Sendov.Analytic.Jsum 11.00 s
LeanPool.Sendov.Analytic.OriginExact 11.00 s
LeanPool.Sendov.FiniteRange.Degree70To79 10.00 s

Comment truncated to fit GitHub's 64 KB limit. This PR profiles 71 files; the per-file table shows only the 71 hottest by heartbeats. The full table and raw lean --profile output for every file are in the run's step summary and proof-profile artifact.

Advisory only — never blocks merge.

…guez

Bridge theorems from upstream Solution.lean, registered on the card.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Vilin97

Vilin97 commented Oct 1, 2026

Copy link
Copy Markdown
Collaborator Author

@greptileai please re-review at head cd3181ee94: this adds the two Mathlib-only statements of record (SendovConjecture.sendov, SendovConjecture.phelps_rodriguez) from upstream's Solution.lean as bridge theorems in Conjecture.lean and registers the first on the card. Local build, declaration/style linters, index check, and trust audits (735 declarations) pass again; the root-index capacity gate remains the only expected CI failure.

@Vilin97

Vilin97 commented Oct 1, 2026

Copy link
Copy Markdown
Collaborator Author

Thorough review (REVIEW_RULES.md dimensions, plus engineering axes)

Reviewed head cd3181ee94 (Lean Action CI run 36856539136) against the upstream source at 1ddea92d89f951a0a7cbbffa6c267cf7e6640b1d, file by file: 33 of the 70 ported modules are byte-identical to upstream after the mechanical module-system rewrite; the others are the regenerated certificate layer (31 batch files, Endgame.lean, new Certificate.lean), Cover.lean (renames only, verified by normalized diff), Alpha17.lean (eight tactic-hint edits, no statement change), Maclaurin.lean (three import lines) and one comment glyph in Reduction/Main.lean.

Faithfulness — approve. Sendov.sendov and Sendov.phelps_rodriguez are textually upstream's statements. SendovConjecture.sendov/.phelps_rodriguez are upstream's Mathlib-only statements of record from its Solution.lean (degree as 2 ≤ p.natDegree, disk hypothesis over all of ℂ), bridged exactly as upstream does; those hypotheses are weaker, so the conclusions are the stronger claims. The card's informal statements were checked against the Lean: the Phelps–Rodriguez alternative is ‖a‖ = 1 ∧ ∃ c ≠ 0, p = C c * (X ^ n - C (a ^ n)), Rubinstein's theorem is stated at the point 1, and stat_lt_one carries the hypotheses 5 ≤ n, 0 ≤ α ≤ 17, c n α ^ 2 ≤ A n α exactly as upstream. Nothing is postulated through structure fields or constructors; the only defs with data content are the certificate lists, which the kernel checks against the definitions batchP/endF rather than taking on trust. No sorry, axiom, native_decide, unsafe, partial, opaque; #print axioms on all 735 declarations gives only the three standard axioms.

Novelty — approve. No Sendov, Phelps–Rodriguez, Rubinstein, Maclaurin-inequality, or multiset AM–GM entry exists in the pool or in Mathlib (Multiset.esymm_card_pred_le and Multiset.prod_le_mean_pow are new; Mathlib's inner_le_nnorm_mul_nnorm-style AM–GM is over Finset weighted sums, not this multiset form). The earlier Mazur/ProofAtlas formalization is not in the pool and shares no code. The two developments are independently checkable proofs of the same theorem, which the pool's criteria explicitly value, and this one is the smaller by a factor of six and adds the equality case.

Significance — approve. Sendov's conjecture was open from 1962; the full-generality proof is from 2026. The reusable layer is broader than the headline: Maclaurin/AM–GM for multisets, the defect inequality, the sharp log (sinh h / h) bound, exact rational Beta-integral tail bounds, the packed-exponentiation moment bridge, and now a generic kernel-checked Bernstein certificate API (bern, pev_pos_of_bern, batch_lt_one) that any future certificate-based inequality proof in the pool can reuse.

Sources — approve. The card cites Tao's blog post (published 2026-08-12 23:10:54 UTC, inside the window), credits Lech Mazur's prior proof and formalization as upstream's README does, and attributes the boundary argument to Tang–Zhang arXiv:2508.10341 (5.1)/Remark 5.1 as upstream does. License Apache-2.0 verified in the upstream LICENSE; all file headers retained. Provenance AI with an explicit note matches upstream's "How this was produced".

Code quality — approve, advisory 4/5. The certificate redesign removes all 96 set_option overrides, every long line, and the per-batch ring/field_simp identities, and the generic lemmas are proved once for symbolic n₀ n₁ k. Findings, none blocking:

  1. The 31 batch files remain generated data (Nmomc, Bc, packing bases) with no in-repo generator; the Python that re-derived them lives outside the repository, so a future regeneration must re-parse the files or recompute from batchP. Upstream had the same property.
  2. decide +kernel is used for every closed computation; Degree80To100 still takes 21 s inside the parallel build (3.6 s alone), dominated by the packed exponentiation to 115 digits of τ and the degree-78 Bernstein expansion. Acceptable, and far below the previous 362 s.
  3. Reduction/Alpha17.lean stays one 150-line proof, as upstream argued; it now compiles at 9.6 s with default heartbeats. The remaining hot spots (Monotone 21 s, Simplified 16 s, OriginExact 13 s of elaboration in the CI profile) are ordinary analytic proofs with no single expensive step; further gains would need proof restructuring rather than a mechanical fix.

Engineering axes. CI on this head: module-system index check, full pool build with warning scan, challenge/solution build, runLinter and text style lint all passed; the repository quality step reports exactly one error, LeanPool.lean:1: file has 10068 code lines; limit is 10000, with the axiom and backdoor validations of the pool otherwise clean. The CI proof profile (3,562,352 heartbeat units over 70 files, no file errors, hottest Monotone.lean at 391k over 35 commands) shows no declaration near the default budget. Local clean project build 1 min 4 s wall / 226 s CPU / 1.8 GB (was 6 min 22 s / 1948 s / 6.6 GB). Dependency closure is Mathlib only. Greptile: low risk, no defect, on both heads.

Verdict: approve on content. Merge remains blocked by the repository-wide root-index capacity gate (LeanPool.lean 10,068 > 10,000), which is outside this PR's scope; the PR should stay draft until that infrastructure change lands, then needs only a rebase and a green CI run.

# Conflicts:
#	LeanPool/projects.yml
@Vilin97

Vilin97 commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator Author

Changes requested by automated review

Reviewed exact head 235cc463cf642701c17146c14340ed688716dbcb. Every one of the 71 owned modules and the project card is unchanged from the comprehensive source review; the full successor diff only integrates the independently reviewed #555 project and lossless registry ordering. The full Sendov and Phelps–Rodriguez endpoints, including the Mathlib-only statements of record, remain significant, faithful and nonduplicative in the retained Mathlib/pool/PR search. The equality alternative and all-degree scope agree with Tao's primary source. The exact pinned upstream, Apache license, AI provenance and kernel-checked certificate closure remain verified. Independent code-quality judgment is 4/5; I am not requesting a cosmetic rewrite of the repaired certificate layer.

Blocking finding: generated LeanPool.lean has 10,071 code lines against the unchanged 10,000 cap. Main now uses 10,000; this import adds 71 modules. The predecessor exact-head run passed build, declaration/style linters and the complete compiled trust/option checks, then failed this gate at 10,068; that is historical evidence, not a green successor result. Current-head CI has now completed failure at the unchanged generated-root gate (10,071/10,000); the content build, linters and compiled trust/option checks pass. The current profile is also historical: cached dependency-closure build 164.34 s, serial per-file sum 382.73 s; the earlier isolated clean-project sample was 64 s.

Acceptance condition: land the separately reviewed central project-root index migration, rebase this PR, and pass all protected checks on the resulting exact head. Preserve generated-index correctness, repository quality checks, public declarations, and theorem statements. No mass source-module consolidation is requested of this PR for the legacy generated-root cap. Content approval does not clear the current gate failure; draft status is not its cause. This is changes requested, with no needs-maintainer decision.

@Vilin97 Vilin97 left a comment •

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent integration verification — 2026-10-02, GPT-6.1-Sol/Ultra

PR #556 was merged by repository actor Vilin97 at 2026-10-02 19:11:53 UTC, from reviewed head cf9b8169d2a6112f546a89b96bc0f1a2e7be5232 to squash 4a4927fa3bc323dc9eb58c4287b7fa6ebf79cc7d. This review worker independently verified that result and did not execute the merge.

All 72 owned Lean files, the entry module and exact project card are identical to accepted source c1acd097dd462de31fca9edc80f5ef2071a98461; the mathematical, Apache licensing and first-party AI provenance verdicts carry forward. The generated project root has 71 sorted, distinct public imports, and the pool root adds its single Sendov project import. The same source tree and card are present in current main 710eb3b9b8d815bb00666a9a723c24d1896df675, whose final metadata commit changes only NOTICE and README.

Exact-head Lean Action CI 37048443229 completed SUCCESS: generated index, project/challenge builds, declaration lint, text style, repository quality, artifact retention and protected aggregate Build project passed. Documentation preflight and content separation also passed. Retained artifact 11246273192 is 26,114,805 bytes and unexpired through 2026-10-16T19:08:18Z; its manifest was independently matched to every exact-head source hash and all three toolchain/build inputs. There are no review threads or later substantive changes request.

Earlier draft, pending-CI and main-integration wording below is historical and superseded by this completed integration. No gate, waiver or mathematical source change was made by this review worker.


2026-10-02 current-status correction — substantive source approval carries forward. PR #556 is OPEN and ready for review at c800faa0d810858cb418ef6106a1126fe3187563 (isDraft: false). Its complete LeanPool/Sendov source tree, entry module, generated index, and project card are byte-identical to the accepted c1acd097dd462de31fca9edc80f5ef2071a98461 head. The previously verified AI proof provenance and mathematical source verdict remain supported. No source condition is newly opened.

Exact-head Lean Action CI 37024042868 completed successfully in rebase mode at this head. The generated index, combined Lean root, combined metadata validation, Check rebased root, and aggregate Build project passed. Previously validated modules were restored, so the full-validation fallback was skipped. All three required contexts pass. Retained rebase-project-build artifact 11234373631 is tied to this exact run/head and is unexpired through 2026-10-16T15:15:48Z.

The source is accepted for normal integration. This green run validates the existing head on base 0a29d01e8da977309a0aea5065ce0d1855a5da82; before integration, refresh against latest main and pass the protected checks for the resulting successor, then recheck threads and branch state. This existing COMMENTED review records the source verdict from the author account. Earlier draft and old-head status wording below is historical and superseded by this checkpoint.


2026-10-02 exact-head follow-up — substantive approval carries forward; protected checks passed. PR #556 is OPEN and draft at exact head 41b91c41e5429e194989917804d0ae2285a0de4b, integrated with main 0b41e3639c59e5788f6dfc0d5b40d5329c22ae0b. The complete LeanPool/Sendov source tree, entry module, and project card block are byte-identical to the approved c1acd097dd462de31fca9edc80f5ef2071a98461 head; the generated Imports.lean and single public root import remain present. The previously reviewed AI provenance matches the pinned upstream disclosure, and no new source or provenance finding is known.

Lean Action CI 37003752785 completed SUCCESS at this exact head in rebase mode: Plan, generated-index check, combined Lean root build, combined metadata validation, Check rebased root, and aggregate Build project passed. The full validation fallback was skipped because the prior validated project artifact was restored. Exact-head Documentation preflight and Content / non-content separation passed. Retained rebase-project-build artifact 11225362983 is unexpired through 2026-10-16T12:08:32Z.

The earlier capacity and pending-CI wording below is historical. The maintainer can mark the PR ready when the contributor intends to submit it. Canonical main has since advanced by a NOTICE/README metadata refresh to 9be87c9d66eea4341994be1b66b2f4940cc373fb; a later merge needs the normal live main/head check and protected checks on any successor. This COMMENTED review records a source verdict from the author account, not formal self-approval.

Historical source review and status follow.

Reviewed exact draft head c1acd097dd462de31fca9edc80f5ef2071a98461: substantive content approved; integration and required CI pending.

All 71 Sendov source modules and the project card remain byte-identical to the comprehensive mathematical review. The full Sendov and Phelps–Rodriguez statements, including the equality case, remain faithful to the pinned upstream source, significant, and distinct from existing pool content. The Apache license, recorded AI proof provenance, and kernel-checked certificate approach are preserved. The migration adds a generated LeanPool.Sendov.Imports file with exactly 71 sorted, distinct public imports and one aggregate-root import; the former generated-root capacity objection is resolved by the separately merged project-root migration. This PR changes no check, limit, or waiver.

The previous changes request concerned only that former capacity gate. Exact-head sharded CI is still running, and this head is behind current main ec381e198b00513a1a56871b5de16edcb38da03d. Keep it draft until the completed source run is inspected, current main is integrated losslessly, and Build project, content separation, and documentation preflight all pass on the resulting exact head. Recheck review threads and branch state before a normal protected merge.

This account authored the PR, so COMMENTED records the source verdict.

@Vilin97

Vilin97 commented Oct 1, 2026

Copy link
Copy Markdown
Collaborator Author

Reviewed exact head e648cfb78cb23526bb58f859626464300f35bc4b against main ec381e198b00513a1a56871b5de16edcb38da03d.

The integration merge preserves every Sendov mathematical source file, the project card, the complete generated LeanPool/Sendov/Imports.lean (71 sorted unique source imports), and the sole LeanPool.Sendov.Imports public import in LeanPool.lean. Relative to the reviewed c1acd097 head, the merge adds only the shipped main changes to README and Python index tooling/tests. The shipped Python --module generator produces no tracked diff. A bounded literal lake exe mk_all --module check is queued behind the shared compiler lock and has not yet run.

The substantive source review carries forward. This draft remains pending exact-head protected CI; no Build project result or merge approval is claimed yet. The former aggregate-root size request is superseded by the shipped project-root index.

@Vilin97

Vilin97 commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator Author

Approved for protected merge

Reviewed exact head cf9b8169d2a6112f546a89b96bc0f1a2e7be5232. This completes Sendov for every degree n≥2 and the Phelps–Rodriguez equality characterization, including the finite rational certificates and large-degree analytic closure; it is not a restricted-degree solution. The full permitted source diff, declaration/dependency inventory, primary first-party sources, licensing/provenance and duplication searches were independently reviewed. Main integration preserved the reviewed Sendov source and card. All material earlier findings are resolved, and both independent source/quality assessment and the still-applicable prior comprehensive automated review meet the acceptance bar; the requested refresh supplies additional advisory evidence, not missing proof evidence.

The full local 3,064-job build, declaration/style linters, 72-file/735-declaration axiom/option audit and index check pass. Exact-head protected Build project, Content / non-content separation and Documentation preflight are green, GitHub is CLEAN, and no unresolved conversation or human change request remains. The author marked the PR ready during this cycle. Normal protected squash merging is now justified. Formal self-approval is unavailable to the PR-author account.

@Vilin97
Vilin97 marked this pull request as ready for review October 2, 2026 17:20
@Vilin97

Vilin97 commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator Author

/review

Fresh exact-head review requested at cf9b8169d2a6112f546a89b96bc0f1a2e7be5232 after the draft was marked ready and current main was integrated losslessly. All mathematical sources and the project card are unchanged. Full project build, both linters, unchanged quality predicates, 72-file/735-declaration axiom/option audit and generated index check pass. Please independently reconcile the complete Sendov and equality-characterization source-facing endpoints and maintainability findings.

@Vilin97
Vilin97 merged commit 4a4927f into main Oct 2, 2026
16 checks passed
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.

1 participant