Skip to content

docs: specify Schönhage radix-3 multiplication and operation-count bounds - #9888

Open
kim-em wants to merge 2 commits into
mainfrom
docs/fast-polynomial-spec
Open

docs: specify Schönhage radix-3 multiplication and operation-count bounds#9888
kim-em wants to merge 2 commits into
mainfrom
docs/fast-polynomial-spec

Conversation

@kim-em

@kim-em kim-em commented Sep 1, 2026

Copy link
Copy Markdown
Owner

This PR specifies Schönhage's 1977 radix-3 multiplication algorithm for F_2[x] and the project's first proved operation-count bounds, across three SPECs plus supporting doctrine. hex-poly-fast gains triadic reference semantics (the third family beside the cyclic and negacyclic folds), the fixed-length positive Triadic carrier, the proof-carrying SchoenhageSchedule with chooser obligations (bounded padding, two-sided sqrt-N balance for K and L, recursive completeness), schoenhagePlan, and the CoeffOps operation-parametric worker convention whose idOps instantiations are the proof-facing definitions. hex-gf2 specifies a planned schoolbook/Karatsuba/Schönhage dispatch ladder behind a proof-backed @[csimp] replacement, Mathlib-free conversions to DensePoly (ZMod64 2), a four-stage refinement proof ending on its own convolution semantics, the exact packed twiddle rule for non-word-aligned L, and ladder milestones with the publication-order constraint. hex-poly-fast-cslib is the first -cslib companion, playing the role for complexity that the -mathlib companions play for correspondence: it instantiates the workers at FreeM (ArithQuery R) from cslib#401, proves specialization and constructor-weight cost obliviousness, and states a dispatcher-covering Karatsuba bound and the Schönhage recurrence with its K·L·k transform term and clog-form global bound, base fixed to the counted Karatsuba worker. The bounds apply to the workers; the raw @[csimp] runtimes stay related by output equality and are explicitly outside the claims, as are word-level and wall-clock statements. cslib#401's Query modules were verified to build against hex-dev's Mathlib revision and the pin policy records the result. SPEC/benchmarking.md and SPEC/testing.md gain the normative complexity_layer classification, SPEC/design-principles.md extends the external-dependency boundary to cslib, and the index and future-work residuals are updated. No libraries.yml, lakefile, or release-manifest changes land with this SPEC-only change.

🤖 Prepared with Claude Code

Kim Morrison and others added 2 commits September 1, 2026 08:43
…ty companion

This commit specifies Schönhage's 1977 radix-3 multiplication algorithm
across three SPECs: triadic reference semantics, the fixed-length carrier,
the proof-carrying schedule, and the generic plan as hex-poly-fast
amendments; the packed F_2[x] kernel, the schoolbook/Karatsuba/Schönhage
dispatch ladder, and the dense-correspondence refinement ladder as hex-gf2
amendments; and hex-poly-fast-cslib, the first -cslib companion library,
holding operation-count bounds in cslib's query-complexity framework with
operation-parametric workers, specialization theorems, and proved cost
obliviousness. Index, future-work, and design-principles entries updated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018S4hrFX6e8B8s56182nAp4
…lassification

This commit revises the Schönhage SPECs: the operation bounds are stated
for the operation-parametric workers only, with the raw @[csimp] runtimes
related by output equality and explicitly outside the claims; the schedule
gains chooser obligations (bounded padding, two-sided sqrt-N balance for K
and L, recursive completeness) and the per-schedule recurrence carries the
K*L*k transform term; cost obliviousness is stated for constructor-
determined weights; the Schönhage bound fixes its base to the counted
Karatsuba worker; the Triadic carrier carries 0 < L and exact-order claims
take Nontrivial R; hex-gf2 states the ladder as a planned amendment with
milestones, targets DensePoly (ZMod64 2) directly, gives the exact packed
twiddle rule, and corrects the oracle attribution (python-flint conforms,
NTL remains an informational comparator). SPEC/benchmarking.md and
SPEC/testing.md gain the normative complexity_layer classification the
companion cites.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018S4hrFX6e8B8s56182nAp4
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