The Polynomial Freiman-Ruzsa Conjecture
The purpose of this repository is to hold a Lean4 formalization of the proof of the Polynomial Freiman-Ruzsa (PFR) conjecture (see also this blog post). The statement is as follows: if \(A\) is a non-empty subset of \({\bf F}_2^n\) such that \(\vert A+A\vert \leq K\vert A\vert\), then \(A\) can be covered by at most \(2K^{12}\) cosets of a subspace \(H\) of \({\bf F}_2^n\) of cardinality at most \(\vert A\vert\). The proof relies on the theory of Shannon entropy, so in particular development of the Shannon entropy inequalities will be needed.
- Discussion of the project on Zulip
- Blueprint of the proof
- Documentation of the methods
- A quick “tour” of the project
- Some example Lean code to illustrate the results in the project
- An (automatically generated) list of contributors to the project
Build the Lean files
To build the Lean files of this project, you need to have a working version of Lean. See the installation instructions (under Regular install). Alternatively, click on the button below to open a Gitpod workspace containing the project.
In either case, run lake exe cache get
and then lake build
to build the project.
Build the blueprint
To build the web version of the blueprint, you need a working LaTeX installation. Furthermore, you need some packages:
sudo apt install graphviz libgraphviz-dev
pip install -r blueprint/requirements.txt
To actually build the blueprint, run
lake exe cache get
lake build
inv all
Moving material to mathlib
The project is now over. As such, we are currently working towards stabilising the new results and contributing them to mathlib.
Here is the list of files that do not depend on any other PFR file, indicating they are good candidates for upstreaming to mathlib:
PFR/ForMathlib/FiniteMeasureProd.lean
PFR/ForMathlib/FiniteRange/Defs.lean
PFR/ForMathlib/GroupQuot.lean
PFR/ForMathlib/MeasureReal/Defs.lean
PFR/ForMathlib/Pair.lean
PFR/ForMathlib/ZModModule.lean
PFR/Mathlib/Algebra/AddTorsor.lean
PFR/Mathlib/Analysis/SpecialFunctions/Log/Basic.lean
PFR/Mathlib/Analysis/SpecialFunctions/NegMulLog.lean
PFR/Mathlib/Data/Set/Pointwise/SMul.lean
PFR/Mathlib/LinearAlgebra/Basis/VectorSpace.lean
PFR/Mathlib/LinearAlgebra/Dimension/Finrank.lean
PFR/Mathlib/MeasureTheory/Constructions/Pi.lean
PFR/Mathlib/MeasureTheory/Integral/Lebesgue.lean
PFR/Mathlib/MeasureTheory/Integral/SetIntegral.lean
PFR/Mathlib/MeasureTheory/Measure/Comap.lean
PFR/Mathlib/MeasureTheory/Measure/Prod.lean
PFR/Mathlib/Probability/ConditionalProbability.lean
PFR/Mathlib/Probability/Independence/Kernel.lean
PFR/Mathlib/Probability/UniformOn.lean
PFR/Mathlib/SetTheory/Cardinal/Arithmetic.lean
PFR/Mathlib/SetTheory/Cardinal/Finite.lean
PFR/Tactic/RPowSimp.lean
Source reference
[GGMT]
: https://arxiv.org/abs/2311.05762