Skip to content

[Merged by Bors] - feat(Analysis/Fourier): discrete Fourier transform on ZMod N#13353

Closed
loefflerd wants to merge 50 commits intomasterfrom
DL_zmod_fourier
Closed

[Merged by Bors] - feat(Analysis/Fourier): discrete Fourier transform on ZMod N#13353
loefflerd wants to merge 50 commits intomasterfrom
DL_zmod_fourier

Conversation

@loefflerd
Copy link
Copy Markdown
Contributor

@loefflerd loefflerd commented May 29, 2024

We write down basic definitions for the discrete Fourier transform, and compute the Fourier transforms of primitive Dirichlet characters (a minor reformulation of a result from an earlier PR).


Open in Gitpod

@loefflerd loefflerd added awaiting-review t-analysis Analysis (normed *, calculus) t-measure-probability Measure theory / Probability theory labels May 30, 2024
@loefflerd loefflerd requested a review from sgouezel May 30, 2024 10:13
* Add a bunch of missing `simp` and `norm_cast` lemmas.
* Get rid of `IsNontrivial ψ` since it's just `ψ ≠ 1`. This simplifies proofs.
* Remove explicit arguments to `toMonoidHomEquiv`/`toAddMonoidHomEquiv`. We basically never need to provide them explicitly since unification usually does the job.
@loefflerd loefflerd added awaiting-author A reviewer has asked the author a question or requested changes. and removed awaiting-review labels Jun 14, 2024
@loefflerd
Copy link
Copy Markdown
Contributor Author

Thanks for the reviews guys! I'm going to review #13579 and then merge it here since it's clearly relevant.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jun 14, 2024

PR summary 16f43ac386

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.MeasureTheory.MeasurableSpace.Instances 517 590 +73 (+14.12%)
Import changes for all files
Files Import difference
8 files Mathlib.Analysis.Fourier.AddCircle Mathlib.Geometry.Euclidean.Sphere.Ptolemy Mathlib.Geometry.Euclidean.Angle.Sphere Mathlib.Geometry.Euclidean.Angle.Oriented.RightAngle Mathlib.Geometry.Euclidean.Angle.Oriented.Rotation Mathlib.NumberTheory.ZetaValues Mathlib.Geometry.Euclidean.Triangle Mathlib.Geometry.Euclidean.Angle.Oriented.Affine
1
Mathlib.Analysis.SpecialFunctions.Complex.Circle 2
Mathlib.MeasureTheory.MeasurableSpace.Instances 73
Mathlib.Topology.Instances.ZMod 623
Mathlib.Analysis.Fourier.ZMod 1954

Declarations diff

+ ZMod.instMeasurableSingletonClass
+ ZMod.instMeasurableSpace
+ dft
+ dft_apply
+ dft_def
+ fourierTransform_eq_gaussSum_mulShift
+ fourierTransform_eq_inv_mul_gaussSum
+ instance : DiscreteTopology (ZMod N) := ⟨rfl⟩
+ instance : TopologicalSpace (ZMod N) := ⊥
+ stdAddChar
+ stdAddChar_apply
+ stdAddChar_coe
+ toAddCircle
+ toAddCircle_apply
+ toAddCircle_eq_zero
+ toAddCircle_inj
+ toAddCircle_injective
+ toAddCircle_intCast
+ toAddCircle_natCast
+ toCircle
+ toCircle_apply
+ toCircle_intCast
+ toCircle_natCast

You can run this locally as follows
## summary with just the declaration names:
./scripts/no_lost_declarations.sh short <optional_commit>

## more verbose report:
./scripts/no_lost_declarations.sh <optional_commit>

@ghost ghost added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Jun 14, 2024
@ghost ghost added merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) and removed blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) labels Jun 14, 2024
@ghost ghost removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jun 14, 2024
@loefflerd loefflerd added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes. labels Jun 14, 2024
@loefflerd loefflerd added the awaiting-CI This PR does not pass CI yet. This label is automatically removed once it does. label Jun 30, 2024
@ghost ghost removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jun 30, 2024
@loefflerd loefflerd added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes. awaiting-CI This PR does not pass CI yet. This label is automatically removed once it does. labels Jun 30, 2024
@loefflerd
Copy link
Copy Markdown
Contributor Author

Thanks for the (re-)review! Good point about natCast as well as intCast, that actually simplifies several other arguments since it meshes better with ZMod.val being Nat-valued. I added the corresponding lemma for Circle as well as AddCircle.

Copy link
Copy Markdown
Contributor

@YaelDillies YaelDillies left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rest looks good, except for the fact that your new definition has no API (but apparently that's a conscious design decision on your part)

@loefflerd loefflerd added awaiting-author A reviewer has asked the author a question or requested changes. and removed awaiting-review labels Jul 6, 2024
@loefflerd loefflerd added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes. labels Jul 6, 2024
@loefflerd
Copy link
Copy Markdown
Contributor Author

Thanks Yael for the comments – I have incorporated them. I promise there will be more API in follow-up PRs; but this PR is a bit of a pain to work on at present (because it involves edits to widely-separated files in the import hierarchy), so I'd rather get it in as it stands.

@YaelDillies
Copy link
Copy Markdown
Contributor

Okay then

maintainer merge

@Ruben-VandeVelde
Copy link
Copy Markdown
Contributor

Odd.

maintainer merge

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jul 6, 2024

🚀 Pull request has been placed on the maintainer queue by Ruben-VandeVelde.

@github-actions github-actions bot added the maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. label Jul 6, 2024
@riccardobrasca
Copy link
Copy Markdown
Member

Thanks!

bors merge

@github-actions github-actions bot added ready-to-merge This PR has been sent to bors. and removed awaiting-review labels Jul 7, 2024
mathlib-bors bot pushed a commit that referenced this pull request Jul 7, 2024
We write down basic definitions for the discrete Fourier transform, and compute the Fourier transforms of primitive Dirichlet characters (a minor reformulation of a result from an earlier PR). 



Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Jul 7, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(Analysis/Fourier): discrete Fourier transform on ZMod N [Merged by Bors] - feat(Analysis/Fourier): discrete Fourier transform on ZMod N Jul 7, 2024
@mathlib-bors mathlib-bors bot closed this Jul 7, 2024
@mathlib-bors mathlib-bors bot deleted the DL_zmod_fourier branch July 7, 2024 12:27
@adomani adomani mentioned this pull request Aug 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. ready-to-merge This PR has been sent to bors. t-analysis Analysis (normed *, calculus) t-measure-probability Measure theory / Probability theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants