Fourier analysis on a finite Boolean cube
Lax253009.BooleanFourier · concepts/Lax253009/BooleanFourier.lean · lax-253009
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
Write a Boolean value as a sign, with true represented by and false by . For a subset of a finite coordinate set , the character is the product of the signs of over . For a real function on the cube, set .
The characters are orthonormal for the uniform average. Fourier inversion recovers , and Parseval's identity gives . In particular, a sign-valued function has total squared Fourier mass one. These are the Fourier identities used at the start of Section 4 of Håstad's paper.
Concept map
Evidence
Lean source view on GitHub
| 1 | import Mathlib.Data.Real.Basic |
| 2 | import Mathlib.Data.Fintype.Powerset |
| 3 | import Mathlib.Data.Fintype.Pi |
| 4 | import Mathlib.Algebra.BigOperators.Ring.Finset |
| 5 | |
| 6 | /-! |
| 7 | --- |
| 8 | title: Fourier analysis on a finite Boolean cube |
| 9 | type: theorem |
| 10 | --- |
| 11 | Write a Boolean value as a sign, with true represented by and false |
| 12 | by . For a subset of a finite coordinate set , the character |
| 13 | is the product of the signs of over . |
| 14 | For a real function on the cube, set |
| 15 | . |
| 16 | |
| 17 | The characters are orthonormal for the uniform average. Fourier inversion |
| 18 | recovers , and Parseval's identity gives |
| 19 | . In particular, a sign-valued |
| 20 | function has total squared Fourier mass one. These are the Fourier |
| 21 | identities used at the start of Section 4 of Håstad's paper. |
| 22 | -/ |
| 23 | |
| 24 | namespace Lax253009.BooleanFourier |
| 25 | |
| 26 | abbrev Cube (ι : Type) := ι → Bool |
| 27 | |
| 28 | def sign (b : Bool) : ℝ := if b then -1 else 1 |
| 29 | |
| 30 | noncomputable def character {ι : Type} (S : Finset ι) (x : Cube ι) : ℝ := |
| 31 | ∏ i ∈ S, sign (x i) |
| 32 | |
| 33 | noncomputable def average {ι : Type} [Fintype ι] [DecidableEq ι] (F : Cube ι → ℝ) : ℝ := |
| 34 | (∑ x, F x) / (2 : ℝ) ^ Fintype.card ι |
| 35 | |
| 36 | noncomputable def coefficient {ι : Type} [Fintype ι] [DecidableEq ι] (F : Cube ι → ℝ) |
| 37 | (S : Finset ι) : ℝ := |
| 38 | average fun x ↦ F x * character S x |
| 39 | |
| 40 | axiom orthogonality {ι : Type} [Fintype ι] [DecidableEq ι] (S T : Finset ι) : |
| 41 | average (fun x ↦ character S x * character T x) = if S = T then 1 else 0 |
| 42 | |
| 43 | axiom inversion {ι : Type} [Fintype ι] [DecidableEq ι] (F : Cube ι → ℝ) (x : Cube ι) : |
| 44 | F x = ∑ S, coefficient F S * character S x |
| 45 | |
| 46 | axiom parseval {ι : Type} [Fintype ι] [DecidableEq ι] (F : Cube ι → ℝ) : |
| 47 | ∑ S, coefficient F S ^ 2 = average (fun x ↦ F x ^ 2) |
| 48 | |
| 49 | axiom boolean_energy {ι : Type} [Fintype ι] [DecidableEq ι] (A : Cube ι → Bool) : |
| 50 | ∑ S, coefficient (fun x ↦ sign (A x)) S ^ 2 = 1 |
| 51 | |
| 52 | axiom bounded_energy {ι : Type} [Fintype ι] [DecidableEq ι] |
| 53 | (F : Cube ι → ℝ) (hF : ∀ x, |F x| ≤ 1) : |
| 54 | ∑ S, coefficient F S ^ 2 ≤ 1 |
| 55 | |
| 56 | end Lax253009.BooleanFourier |
| 57 |
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments