feat(NumberTheory): the number-theoretic transform#41924
feat(NumberTheory): the number-theoretic transform#41924junjihashimoto wants to merge 3 commits into
Conversation
Define the Cayley-Dickson double of a (possibly non-associative) star ring, and show that it preserves NonAssocRing and StarRing, so the construction iterates: quaternions -> octonions -> sedenions -> ... The doubling unit l = (0, 1) satisfies l * (l * x) = -x at every level of the tower, by a computation using only that star is an involution (no alternativity is developed). Left multiplication by l is therefore a complex structure on every Cayley-Dickson algebra.
The discrete Fourier transform of functions ZMod N -> M for M a module over a commutative domain containing a primitive N-th root of unity: orthogonality, the Fourier inversion formula, and the bilinear Parseval identity (the finite-field replacement for Plancherel's theorem). The module can be a hypercomplex algebra, giving hypercomplex NTTs.
Welcome new contributor!Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests. We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR. Thank you again for joining our community. |
PR summary 93b9e11055Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
| Current number | Change | Type (weak) |
|---|---|---|
| 5017 | 3 | exposed public sections |
Current commit 93b9e11055
Reference commit 8c79cb4f54
This script lives in the mathlib-ci repository. To run it locally, from your mathlib4 directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci
../mathlib-ci/scripts/reporting/technical-debt-metrics.sh pr_summary
- The
relativevalue is the weighted sum of the differences with weight given by the inverse of the current value of the statistic. - The
absolutevalue is therelativevalue divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).
|
This PR/issue depends on: |
The number-theoretic transform is the discrete Fourier transform of functions
ZMod N → M, whereMis a module over a commutative domainRcontaining a primitiveN-th root of unityζ(e.g.R = ZMod pwithN ∣ p - 1):ntt hζ f k = ∑ j, ζ ^ (j * k) • f j.We prove the character orthogonality relation (
sum_zmodChar_mul, fromAddChar.sum_eq_ite), the Fourier inversion formulanttInv_ntt/ntt_nttInv(so the transform is bijective wheneverNis invertible inR), and the bilinear Parseval identitysum_bilin_ntt_ntt_neg— over a general coefficient ring there is no norm or conjugation, and this is the correct finite-field replacement for Plancherel's theorem.The module
Mis arbitrary; takingMto be a hypercomplex algebra overR(e.g. the octonions or sedenions overZMod pfrom #41919, whence the dependency) yields hypercomplex number-theoretic transforms, recorded as an example. This is the finite-field counterpart of the archimedean theory in #41921/#41922.The NTT is the transform underlying polynomial multiplication in lattice-based cryptography (e.g. ML-KEM/Kyber), so this also provides groundwork for formalizing those schemes.