Skip to content

feat(sparse-poly-mathlib): activate the companion with the complete Equiv surface - #9481

Merged
kim-em merged 3 commits into
mainfrom
sparse-poly-mathlib
Aug 23, 2026
Merged

feat(sparse-poly-mathlib): activate the companion with the complete Equiv surface#9481
kim-em merged 3 commits into
mainfrom
sparse-poly-mathlib

Conversation

@kim-em

@kim-em kim-em commented Aug 23, 2026

Copy link
Copy Markdown
Owner

This PR activate HexSparsePolyMathlib and bring it through phases 1-5, fully proven throughout: the companion SPEC (with the headline correctness theorem section naming equiv, coeff_equiv, and equiv_support), the denseEquiv ring equivalence packaging the core's toDense/ofDense conversions and homomorphism laws, equiv := denseEquiv.trans HexPolyMathlib.equiv, and one correspondence lemma per public core operation (coeff_equiv, equiv_toDense, equiv_support, equiv_eval, equiv_derivative, equiv_compose, equiv_substPow, equiv_monomial, equiv_C, equiv_X, equiv_natDegree, equiv_leadingCoeff, equiv_monic). Both equivalences are stated at Mathlib [CommRing R] because denseEquiv.map_mul' reuses the core's toDense_mul, which the parent SPEC's law-placement note records at Lean.Grind.CommRing; the parent SPEC's Mathlib-layer section is updated to match, with the semiring weakening path recorded. HexPolyMathlib gains the dense eval_toPolynomial simp lemma, and the core gains Hex.SparsePoly.mem_support_iff. An independent Phase-2 review ran against the SPEC and PLAN/Phase2.md (token committed); the conformance module carries companion-import regression guards plus the theorem-level transport surface at a generic CommRing; Phase 4 holds by the correspondence-only-layer declaration and Phase 5 by zero sorries. The one scheduled gap, substScale transport, is #9482. done_through: 5.

🤖 Prepared with Claude Code

@kim-em
kim-em force-pushed the sparse-poly-proofs branch from 2f278c0 to d08634f Compare August 23, 2026 12:38
@kim-em
kim-em force-pushed the sparse-poly-mathlib branch 2 times, most recently from 0bee145 to e87f134 Compare August 23, 2026 12:39
@kim-em
kim-em force-pushed the sparse-poly-proofs branch from d08634f to dfd070c Compare August 23, 2026 13:05
@kim-em
kim-em force-pushed the sparse-poly-mathlib branch from 792f75d to cf0babf Compare August 23, 2026 13:05
@kim-em
kim-em force-pushed the sparse-poly-proofs branch from dfd070c to 38c3318 Compare August 23, 2026 13:28
@kim-em
kim-em force-pushed the sparse-poly-mathlib branch from cf0babf to 57302e0 Compare August 23, 2026 13:28
@kim-em
kim-em force-pushed the sparse-poly-proofs branch from 38c3318 to 96fd9d2 Compare August 23, 2026 13:55
@kim-em
kim-em force-pushed the sparse-poly-mathlib branch from 57302e0 to 0ec46e8 Compare August 23, 2026 13:55
@kim-em
kim-em force-pushed the sparse-poly-proofs branch from 96fd9d2 to 82c4817 Compare August 23, 2026 14:19
@kim-em
kim-em force-pushed the sparse-poly-mathlib branch from 0ec46e8 to 9621904 Compare August 23, 2026 14:19
@kim-em
kim-em force-pushed the sparse-poly-proofs branch from 82c4817 to 95ab0fb Compare August 23, 2026 15:11
@kim-em
kim-em force-pushed the sparse-poly-mathlib branch from 9621904 to 36460aa Compare August 23, 2026 15:11
@kim-em
kim-em force-pushed the sparse-poly-proofs branch from 95ab0fb to e37a267 Compare August 23, 2026 15:56
@kim-em
kim-em force-pushed the sparse-poly-mathlib branch from 36460aa to 072d1c4 Compare August 23, 2026 15:56
@kim-em
kim-em force-pushed the sparse-poly-proofs branch from e37a267 to 15c6fce Compare August 23, 2026 16:24
@kim-em
kim-em force-pushed the sparse-poly-mathlib branch from 072d1c4 to 9b39388 Compare August 23, 2026 16:24
Kim Morrison and others added 3 commits August 23, 2026 16:50
…quiv surface

The companion SPEC with its headline correctness theorem section, the
denseEquiv/equiv ring equivalences at Mathlib CommRing, and all seven
correspondence lemmas including the equiv_support headline. Core gains
mem_support_iff. Progress: progress/20260823T123004Z_sparse-poly-mathlib.md

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014CvkL7tZHMnLN53fXCAjiq
…nces, and the token

Independent review verdict pass-with-gaps: dense eval helpers move to
HexPolyMathlib as simp lemmas, equiv_monomial/C/X/natDegree/
leadingCoeff/monic close the constructor/observer gaps, equiv_apply
loses simp so the correspondence lemmas fire first, and the parent
SPEC's RingEquiv field description is corrected. substScale transport
is issue 9482. done_through: 2

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014CvkL7tZHMnLN53fXCAjiq
Companion-import regression guards plus the theorem-level transport
surface at a generic CommRing, wired into the HexConformance globs.
Phase 4 holds by the correspondence-only-layer declaration (zero bench
targets, no phase4 block), Phase 5 by zero sorries; done_through: 5.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014CvkL7tZHMnLN53fXCAjiq
@kim-em
kim-em force-pushed the sparse-poly-mathlib branch from 9b39388 to ea2a79c Compare August 23, 2026 16:50
@kim-em
kim-em changed the base branch from sparse-poly-proofs to main August 23, 2026 16:50
@kim-em
kim-em enabled auto-merge (squash) August 23, 2026 16:50
@kim-em
kim-em merged commit 6d562b1 into main Aug 23, 2026
1 check 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