Skip to content

feat: root identity, the deferred two-circle statement, and companion conformance#8753

Merged
kim-em merged 2 commits into
mainfrom
real-roots-s8-wrapup
Jul 11, 2026
Merged

feat: root identity, the deferred two-circle statement, and companion conformance#8753
kim-em merged 2 commits into
mainfrom
real-roots-s8-wrapup

Conversation

@kim-em

@kim-em kim-em commented Jul 11, 2026

Copy link
Copy Markdown
Owner

This PR completes the HexRealRootsMathlib scaffold with the root-identity theorems, the deferred Descartes-termination statement, and the companion conformance module. SimpleRealRoot.lean proves that Overlaps classes on RefinedRealIsolation are exactly the real roots: overlaps_iff_same_root (forward by the separation bound sepPrec_separates', backward by common-root interval containment), SimpleRealRoot.toReal with toReal_isRoot and toReal_injective, and sameRoot_iff deciding equality in the quotient. theRoot is the unique root from RealRootIsolation.exists_unique_root. TwoCircle.lean states isolateDescartes?_isSome behind its Obreshkoff two-circle prerequisite; this is the library's one intentional sorry, and its docstring records the obligation that whichever PR discharges it must delete the Descartes stand-in assertions in conformance/HexRealRoots/Conformance.lean. The companion conformance module ties the executable Hex.rootCount to Mathlib roots.card on committed fixtures through the proven correspondence theorems, with a full formal tie on x - 5. It also renames the M5 Sturm helpers (exists_left_gap/exists_right_gap, chain_head_mem, private card_filter_Ioc_split), bumps HexRealRootsMathlib done_through to 1, and wires the new files into the umbrella.

The SimpleRealRoot theorems match the SPEC signatures verbatim: they carry only SquareFreeRat p, with p != 0 derived internally from the isolation's count_one (via degree_pos_of_count_one), unlike isolates/isolateSturm?_isSome which have no isolation on hand and so must assume p != 0.

🤖 Prepared with Claude Code

Kim Morrison and others added 2 commits July 11, 2026 19:28
… conformance

Add HexRealRootsMathlib/SimpleRealRoot.lean (theRoot, overlaps_iff_same_root,
SimpleRealRoot.toReal/toReal_isRoot/toReal_injective, sameRoot_iff),
HexRealRootsMathlib/TwoCircle.lean (the deferred isolateDescartes?_isSome behind
the Obreshkoff two-circle prerequisite — the library's one intentional sorry),
and conformance/HexRealRootsMathlib/Conformance.lean (the companion conformance
module). Rename the M5 Sturm helpers, bump HexRealRootsMathlib done_through to 1,
and wire the two new files into the umbrella.

See progress/2026-07-11T19-27-49Z-real-roots-s8-wrapup.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NUB5EStJpJ8CPqMkNw7Qjz
SquareFreeRat 0 holds vacuously, so the nonzero hypothesis is required;
matches the driver-completeness precedent. Per Codex review of #8753.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NUB5EStJpJ8CPqMkNw7Qjz
@kim-em kim-em merged commit d916659 into main Jul 11, 2026
1 check passed
@kim-em kim-em deleted the real-roots-s8-wrapup branch July 11, 2026 19:40
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