Skip to content

feat(sparse-poly): dense conversions with the multiplicative transport - #9388

Merged
kim-em merged 1 commit into
mainfrom
sparse-poly-dense
Aug 23, 2026
Merged

feat(sparse-poly): dense conversions with the multiplicative transport#9388
kim-em merged 1 commit into
mainfrom
sparse-poly-dense

Conversation

@kim-em

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

Copy link
Copy Markdown
Owner

This PR land milestone 3 of the hex-sparse-poly SPEC: the array-level workers coeffsOfTerms (indexed writes whose last-write-wins behaviour on non-canonical input matches the SPEC's negative-case bullets) and termsOfCoeffs; toDense through DensePoly.ofCoeffs and ofDense as the ordered list-walk specification compiled through a proved @[csimp] array pass; coeff_toDense/coeff_ofDense; both round trips at the array level (each under exactly its necessity hypothesis) and at the bundled level; the homomorphism laws in both directions, with toDense_mul proved by decomposing the pairwise product into a fold of mulMonomials and matching it against a fold of dense monomial multiples; coeff_mul by transport; and the degree-boundary transport (degree?_toDense, leadingCoeff_toDense, Monic, monic_toDense). The eight multiplicative ring laws move here from Arith.lean and are proved through the injective toDense, at Lean.Grind.CommRing where the dense side proves them. The library is sorry-free through milestone 3.

🤖 Prepared with Claude Code

coeffsOfTerms and termsOfCoeffs workers, toDense, ofDense with the
proved array-pass @[csimp] twin, coefficient preservation, both
array-level and bundled round trips, homomorphism laws in both
directions including toDense_mul via the mulMonomial-fold
decomposition, coeff_mul by transport, the degree/leadingCoeff/Monic
transport, and the multiplicative ring laws (moved from Arith.lean:
their SPEC-prescribed transport proofs need this layer). The library
is now sorry-free through milestone 3.

Progress: progress/20260822T035252Z_sparse-poly-dense.md

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-dense branch from 796f7dc to 5fa8bba Compare August 23, 2026 13:28
@kim-em
kim-em changed the base branch from sparse-poly-arith to main August 23, 2026 13:29
@kim-em
kim-em enabled auto-merge (squash) August 23, 2026 13:29
@kim-em kim-em closed this Aug 23, 2026
auto-merge was automatically disabled August 23, 2026 13:30

Pull request was closed

@kim-em kim-em reopened this Aug 23, 2026
@kim-em
kim-em enabled auto-merge (squash) August 23, 2026 13:31
@kim-em
kim-em merged commit 47cc8df 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