[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"obsKKR6aMY":3},"# Mean Fourier Analysis in Lean\n\n[![.github/workflows/push.yml](https://github.com/YaelDillies/mean-fourier/actions/workflows/push.yml/badge.svg)](https://github.com/YaelDillies/mean-fourier/actions/workflows/push.yml)\n[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/YaelDillies/mean-fourier)\n\nThis repository aims at formalising the Fourier theory of almost-periodic functions in Lean 4.\n\n## What are almost-periodic functions?\n\nAlmost-periodic functions are a generalisation of periodic functions due to H. Bohr in the 1920s.\nA typical example would be $\\sin x + \\sin(\\sqrt 2 x)$, which is almost-periodic but not periodic\nsince $\\sqrt 2$ is irrational.\n\nLike periodic functions, an almost-periodic function has a Fourier series which (roughly) encodes\nhow the function correlates with linear subspaces.\nAs such, almost-periodic functions form a natural class of solutions to PDEs.\nIn additive combinatorics too, naturally occurring functions turn out to be almost-periodic.\n\nThere are several near-equivalent definitions of almost-periodic functions in the literature.\nWe choose the one put forward in\n[*Almost periodic functions in a group. I*, J. von Neumann](https://doi.org/10.2307/1989792).\nThis definition states that a complex-valued function $f$ from a group $G$ is almost-periodic if,\nfor all $\\varepsilon > 0$, $G$ can be covered by a finite number of translates of the set of\n$t \\in G$ such that $|f(xt^{-1}) - f(x)| \\le \\varepsilon$ for all $x \\in G$.\nThis definition is very general, as it doesn't require $G$ to be either topological or abelian.\nContinuous functions from a compact group are automatically almost-periodic,\nso we recover the usual Fourier analysis on compact groups by density arguments.\n\n## What is formalisation/Lean?\n\nFormalisation is the process of transforming some source material,\ntypically a mathematical textbook or article, into definitions in a target system\nconsisting of a computer implementation of a logical theory (such as set theory or type theory).\n\nThe target system here is [Lean 4](https://lean-lang.org/),\na very modern functional programming language.\nOn top of Lean is built [Mathlib](https://leanprover-community.github.io/),\na monolithic library of formalised mathematics containing a large part of what is covered\nin a standard undergraduate curriculum.\nMeanFourier is itself built on top of Mathlib. The goal is to eventually incorporate it in Mathlib.\n\n## Relation to other projects\n\nMeanFourier develops the Fourier analysis of almost-periodic functions (aka mean Fourier analysis),\nand obtains the Fourier analysis of continuous functions on compact groups\n(aka compact Fourier analysis) as a special case.\nThis is the maximal generality in which the dual space is equipped with the discrete measure,\nwhich is the crucial property powering Fourier-analytic arguments in additive combinatorics.\n\n[APAP](https://github.com/YaelDillies/apap/) is my previous project\nformalising one such argument, but developing only the Fourier theory of finite abelian groups\n(aka finite Fourier analysis).\nMeanFourier is meant as a drop-in replacement of this part of APAP.\n\nAdeles of a number field are locally compact and as such the Fourier theory\nof locally compact abelian groups is used as an input to algebraic number theory.\nAndrew Yang and I will formalise this generality as part of\n[the FLT project](https://github.com/ImperialCollegeLondon/FLT).\n\nAlthough Fourier analysis of compact groups and locally compact abelian groups both exist\nin the mathematical literature, their putative common generalisation,\nthe Fourier analysis of locally compact groups, doesn't.\n\n## Content\n\nThe Lean code is located within the `MeanFourier` folder. Within it, one can find:\n* A `Mathlib` subfolder for the **prerequisites** to be upstreamed to mathlib.\n  Lemmas that belong in an existing mathlib file `Mathlib.X` are located in `MeanFourier.Mathlib.X`.\n  We aim to preserve the property that `MeanFourier.Mathlib.X` only imports `Mathlib.X` and\n  files of the form `MeanFourier.Mathlib.Y` where `Mathlib.X` (transitively) imports `Mathlib.Y`.\n  Prerequisites that do not belong in any existing mathlib file are placed in subtheory folders.\n  See below.\n\nSee the [upstreaming dashboard](https://yaeldillies.github.io/mean-fourier/upstreaming) for more information.\n\n## Getting the project\n\nTo build the Lean files of this project, you need to have a working version of Lean.\nSee [the installation instructions](https://lean-lang.org/install/).\nAlternatively, click on the button below to open an Ona workspace containing the project.\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/YaelDillies/mean-fourier)\n\nIn either case, run `lake exe cache get` and then `lake build` to build the project.\n\n## Contributing\n\nThis project is currently not open to contribution.\n",1777138846835]