5.3. The Fourier coefficients of Majority
Symmetric Fourier coefficients (from Exercise 1.30). Let
f:\{-1,1\}^n\to\mathbb R be symmetric. If S,T\subseteq[n] satisfy
|S|=|T|, then
\widehat f(S)=\widehat f(T).
Thus the Fourier coefficient of a symmetric function at a set S depends
only on |S|.
Lean code for Lemma5.3.1●1 theorem
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.fourierCoeff_eq_of_card_eq_of_isSymmetric {n : ℕ} {f : FABL.SignCube n → ℝ} (hf : FABL.IsSymmetric f) {S T : Finset (Fin n)} (hcard : S.card = T.card) : FABL.fourierCoeff f S = FABL.fourierCoeff f T
theorem FABL.fourierCoeff_eq_of_card_eq_of_isSymmetric {n : ℕ} {f : FABL.SignCube n → ℝ} (hf : FABL.IsSymmetric f) {S T : Finset (Fin n)} (hcard : S.card = T.card) : FABL.fourierCoeff f S = FABL.fourierCoeff f T
Exercise 1.30: Fourier coefficients of a symmetric function depend only on the cardinality of their index set.
Exercise 1.8(c), odd-function consequence. If
f:\{-1,1\}^n\to\mathbb R is odd, so that f(-x)=-f(x) for every x,
then every even-cardinality Fourier coefficient vanishes:
|S|\text{ even}\quad\Longrightarrow\quad\widehat f(S)=0.
This is the exact part of Exercise 1.8 used by Theorem 5.19.
Lean code for Lemma5.3.2●1 theorem
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.fourierCoeff_eq_zero_of_odd_of_even_card {n : ℕ} {f : FABL.SignCube n → ℝ} (hf : Function.Odd f) (S : Finset (Fin n)) (hS : Even S.card) : FABL.fourierCoeff f S = 0
theorem FABL.fourierCoeff_eq_zero_of_odd_of_even_card {n : ℕ} {f : FABL.SignCube n → ℝ} (hf : Function.Odd f) (S : Finset (Fin n)) (hS : Even S.card) : FABL.fourierCoeff f S = 0
Exercise 1.8(c): an odd function has zero Fourier coefficient on every even-cardinality set.
-
FABL.arcsinSeriesCoefficient[complete] -
FABL.arcsinOddPowerCoefficient[complete] -
FABL.arcsinOddPowerCoefficient_two_mul_add_one[complete] -
FABL.exercise5_18a[complete] -
FABL.exercise5_18_arcsinSeries[complete] -
FABL.exercise5_18[complete]
Exercise 5.18 (the power series for arcsine).
(a) The generalized Binomial Theorem gives, for |z|<1,
(1-z^2)^{-1/2}
=\sum_{j=0}^{\infty}\binom{2j}{j}\frac{z^{2j}}{2^{2j}}.
(b) Integrating term by term gives, for |z|<1,
\arcsin z
=\sum_{j=0}^{\infty}
\frac1{2j+1}\binom{2j}{j}\frac{z^{2j+1}}{2^{2j}}
=\sum_{\substack{k\ge1\\k\ \mathrm{odd}}}
\frac{2}{k2^k}\binom{k-1}{(k-1)/2}z^k.
\tag{5.9}
(c) The arcsine series in (b) also holds for z=\pm1; it converges there to
\arcsin(1)=\pi/2 and
\arcsin(-1)=-\pi/2.
Lean code for Lemma5.3.3●6 declarations
Associated Lean declarations
-
FABL.arcsinSeriesCoefficient[complete]
-
FABL.arcsinOddPowerCoefficient[complete]
-
FABL.arcsinOddPowerCoefficient_two_mul_add_one[complete]
-
FABL.exercise5_18a[complete]
-
FABL.exercise5_18_arcsinSeries[complete]
-
FABL.exercise5_18[complete]
-
FABL.arcsinSeriesCoefficient[complete] -
FABL.arcsinOddPowerCoefficient[complete] -
FABL.arcsinOddPowerCoefficient_two_mul_add_one[complete] -
FABL.exercise5_18a[complete] -
FABL.exercise5_18_arcsinSeries[complete] -
FABL.exercise5_18[complete]
-
defdefined in FABL/Chapter05/MajorityLimits.leancomplete
def FABL.arcsinSeriesCoefficient (j : ℕ) : ℝ
def FABL.arcsinSeriesCoefficient (j : ℕ) : ℝ
The coefficient of `z^(2j + 1)` in the central-binomial series for `Real.arcsin`.
-
defdefined in FABL/Chapter05/MajorityLimits.leancomplete
def FABL.arcsinOddPowerCoefficient (k : ℕ) : ℝ
def FABL.arcsinOddPowerCoefficient (k : ℕ) : ℝ
The coefficient of `z^k` in the odd-power presentation of the arcsine series.
-
theoremdefined in FABL/Chapter05/MajorityLimits.leancomplete
theorem FABL.arcsinOddPowerCoefficient_two_mul_add_one (j : ℕ) : FABL.arcsinOddPowerCoefficient (2 * j + 1) = FABL.arcsinSeriesCoefficient j
theorem FABL.arcsinOddPowerCoefficient_two_mul_add_one (j : ℕ) : FABL.arcsinOddPowerCoefficient (2 * j + 1) = FABL.arcsinSeriesCoefficient j
-
theoremdefined in FABL/Chapter05/MajorityLimits.leancomplete
theorem FABL.exercise5_18a {z : ℝ} (hz : |z| < 1) : HasSum (fun j => ↑((2 * j).choose j) * z ^ (2 * j) / 2 ^ (2 * j)) ((1 - z ^ 2) ^ (-1 / 2))
theorem FABL.exercise5_18a {z : ℝ} (hz : |z| < 1) : HasSum (fun j => ↑((2 * j).choose j) * z ^ (2 * j) / 2 ^ (2 * j)) ((1 - z ^ 2) ^ (-1 / 2))
O'Donnell, Exercise 5.18(a): the generalized-binomial expansion of `(1 - z²)⁻¹ᐟ²` on the open unit interval.
-
theoremdefined in FABL/Chapter05/MajorityLimits.leancomplete
theorem FABL.exercise5_18_arcsinSeries (z : ℝ) (hz : z ∈ Set.Icc (-1) 1) : HasSum (fun j => FABL.arcsinSeriesCoefficient j * z ^ (2 * j + 1)) (Real.arcsin z) ∧ HasSum (fun k => FABL.arcsinOddPowerCoefficient k * z ^ k) (Real.arcsin z)
theorem FABL.exercise5_18_arcsinSeries (z : ℝ) (hz : z ∈ Set.Icc (-1) 1) : HasSum (fun j => FABL.arcsinSeriesCoefficient j * z ^ (2 * j + 1)) (Real.arcsin z) ∧ HasSum (fun k => FABL.arcsinOddPowerCoefficient k * z ^ k) (Real.arcsin z)
O'Donnell, Exercise 5.18(b)--(c): both odd-power presentations of the arcsine series converge on the closed unit interval, including its endpoints.
-
theoremdefined in FABL/Chapter05/MajorityLimits.leancomplete
theorem FABL.exercise5_18 : (∀ (z : ℝ), |z| < 1 → HasSum (fun j => ↑((2 * j).choose j) * z ^ (2 * j) / 2 ^ (2 * j)) ((1 - z ^ 2) ^ (-1 / 2))) ∧ (∀ z ∈ Set.Icc (-1) 1, HasSum (fun j => FABL.arcsinSeriesCoefficient j * z ^ (2 * j + 1)) (Real.arcsin z) ∧ HasSum (fun k => FABL.arcsinOddPowerCoefficient k * z ^ k) (Real.arcsin z)) ∧ (HasSum (fun j => FABL.arcsinSeriesCoefficient j * 1 ^ (2 * j + 1)) (Real.pi / 2) ∧ HasSum (fun k => FABL.arcsinOddPowerCoefficient k * 1 ^ k) (Real.pi / 2)) ∧ HasSum (fun j => FABL.arcsinSeriesCoefficient j * (-1) ^ (2 * j + 1)) (-(Real.pi / 2)) ∧ HasSum (fun k => FABL.arcsinOddPowerCoefficient k * (-1) ^ k) (-(Real.pi / 2))
theorem FABL.exercise5_18 : (∀ (z : ℝ), |z| < 1 → HasSum (fun j => ↑((2 * j).choose j) * z ^ (2 * j) / 2 ^ (2 * j)) ((1 - z ^ 2) ^ (-1 / 2))) ∧ (∀ z ∈ Set.Icc (-1) 1, HasSum (fun j => FABL.arcsinSeriesCoefficient j * z ^ (2 * j + 1)) (Real.arcsin z) ∧ HasSum (fun k => FABL.arcsinOddPowerCoefficient k * z ^ k) (Real.arcsin z)) ∧ (HasSum (fun j => FABL.arcsinSeriesCoefficient j * 1 ^ (2 * j + 1)) (Real.pi / 2) ∧ HasSum (fun k => FABL.arcsinOddPowerCoefficient k * 1 ^ k) (Real.pi / 2)) ∧ HasSum (fun j => FABL.arcsinSeriesCoefficient j * (-1) ^ (2 * j + 1)) (-(Real.pi / 2)) ∧ HasSum (fun k => FABL.arcsinOddPowerCoefficient k * (-1) ^ k) (-(Real.pi / 2))
O'Donnell, Exercise 5.18: the derivative series on `(-1, 1)`, both integrated odd-power series on `[-1, 1]`, and their exact endpoint sums.
-
FABL.limitingMajorityFourierWeight[complete] -
FABL.limitingMajorityFourierWeight_eq[complete] -
FABL.limitingMajorityFourierWeight_hasSum_one[complete] -
FABL.limitingMajorityFourierWeightAbove[complete] -
FABL.limitingMajorityFourierWeightAbove_summable[complete]
Limiting majority Fourier weights. For k\in\mathbb N, write
\mathbf W^k(\operatorname{Maj})
:=[\rho^k]\left(\frac2\pi\arcsin\rho\right)
=
\begin{cases}
\displaystyle
\frac{4}{\pi k2^k}\binom{k-1}{(k-1)/2},
& k\text{ odd},\\[6pt]
0,& k\text{ even}.
\end{cases}
\tag{5.10}
Here [\rho^k]F(\rho) denotes the coefficient of \rho^k in the power
series F. Also write
\mathbf W^{>k}(\operatorname{Maj})
=\sum_{j>k}\mathbf W^j(\operatorname{Maj}).
Lean code for Definition5.3.4●5 declarations
Associated Lean declarations
-
FABL.limitingMajorityFourierWeight[complete]
-
FABL.limitingMajorityFourierWeight_eq[complete]
-
FABL.limitingMajorityFourierWeight_hasSum_one[complete]
-
FABL.limitingMajorityFourierWeightAbove[complete]
-
FABL.limitingMajorityFourierWeightAbove_summable[complete]
-
FABL.limitingMajorityFourierWeight[complete] -
FABL.limitingMajorityFourierWeight_eq[complete] -
FABL.limitingMajorityFourierWeight_hasSum_one[complete] -
FABL.limitingMajorityFourierWeightAbove[complete] -
FABL.limitingMajorityFourierWeightAbove_summable[complete]
-
defdefined in FABL/Chapter05/LimitingMajorityWeights.leancomplete
def FABL.limitingMajorityFourierWeight (k : ℕ) : ℝ
def FABL.limitingMajorityFourierWeight (k : ℕ) : ℝ
O'Donnell, Equation (5.10): the degree-`k` coefficient of `(2 / π) * arcsin ρ`.
-
theoremdefined in FABL/Chapter05/LimitingMajorityWeights.leancomplete
theorem FABL.limitingMajorityFourierWeight_eq (k : ℕ) : FABL.limitingMajorityFourierWeight k = if Odd k then 4 / (Real.pi * ↑k * 2 ^ k) * ↑((k - 1).choose ((k - 1) / 2)) else 0
theorem FABL.limitingMajorityFourierWeight_eq (k : ℕ) : FABL.limitingMajorityFourierWeight k = if Odd k then 4 / (Real.pi * ↑k * 2 ^ k) * ↑((k - 1).choose ((k - 1) / 2)) else 0
The explicit odd/even formula in O'Donnell, Equation (5.10).
-
theoremdefined in FABL/Chapter05/LimitingMajorityWeights.leancomplete
theorem FABL.limitingMajorityFourierWeight_hasSum_one : HasSum FABL.limitingMajorityFourierWeight 1
theorem FABL.limitingMajorityFourierWeight_hasSum_one : HasSum FABL.limitingMajorityFourierWeight 1
The limiting majority Fourier weights sum to `1`.
-
defdefined in FABL/Chapter05/LimitingMajorityWeights.leancomplete
def FABL.limitingMajorityFourierWeightAbove (k : ℕ) : ℝ
def FABL.limitingMajorityFourierWeightAbove (k : ℕ) : ℝ
O'Donnell's `𝐖^{>k}(Maj)`, expressed as the convergent sum over degrees strictly greater than `k`. -
theoremdefined in FABL/Chapter05/LimitingMajorityWeights.leancomplete
theorem FABL.limitingMajorityFourierWeightAbove_summable (k : ℕ) : Summable fun j => FABL.limitingMajorityFourierWeight ↑j
theorem FABL.limitingMajorityFourierWeightAbove_summable (k : ℕ) : Summable fun j => FABL.limitingMajorityFourierWeight ↑j
The series defining `limitingMajorityFourierWeightAbove` is summable.
-
FABL.middleLayerIndicator[complete] -
FABL.middleLayerIndicator_eq_one_iff_negative_count[complete] -
FABL.discreteDerivative_majority_odd_last_eq_middleLayerIndicator[complete] -
FABL.middleLayerIndicator_isSymmetric[complete] -
FABL.noiseOperator_middleLayerIndicator_allOne_eq_product[complete] -
FABL.noiseOperator_middleLayerIndicator_allOne_eq[complete] -
FABL.noiseOperator_middleLayerIndicator_allOne_eq_fourierSum[complete] -
FABL.noiseOperator_middleLayerIndicator_allOne_eq_groupedFourierSum[complete] -
FABL.fourierCoeff_middleLayerIndicator[complete]
The middle-layer calculation, Equations (5.12)--(5.14). For m\in\mathbb N,
let
\operatorname{Half}_{2m}:\{-1,1\}^{2m}\to\{0,1\}
be the indicator of the strings having exactly m coordinates equal to
-1. Identifying a derivative that ignores its last coordinate with a
function on the remaining coordinates,
D_{2m+1}\operatorname{Maj}_{2m+1}=\operatorname{Half}_{2m}.
For every 0\le j\le m and every T\subseteq[2m] with |T|=2j,
\widehat{\operatorname{Half}_{2m}}(T)
=(-1)^j
\frac{\binom mj}{\binom{2m}{2j}}
\frac1{2^{2m}}\binom{2m}{m}.
\tag{5.12}
For every \rho\in[-1,1],
\begin{aligned}
T_\rho\operatorname{Half}_{2m}(1,\ldots,1)
&=\binom{2m}{m}
\left(\frac12+\frac\rho2\right)^m
\left(\frac12-\frac\rho2\right)^m\\
&=\frac1{2^{2m}}\binom{2m}{m}(1-\rho^2)^m,
\end{aligned}
\tag{5.13}
whereas symmetry and the Fourier formula for T_\rho give
T_\rho\operatorname{Half}_{2m}(1,\ldots,1)
=\sum_{U\subseteq[2m]}
\widehat{\operatorname{Half}_{2m}}(U)\rho^{|U|}
=\sum_{i=0}^{2m}\binom{2m}{i}
\widehat{\operatorname{Half}_{2m}}(T_i)\rho^i,
\tag{5.14}
where T_i is any i-element subset of [2m]. Comparing coefficients in
(5.13) and (5.14) yields (5.12).
Lean code for Lemma5.3.5●9 declarations
Associated Lean declarations
-
FABL.middleLayerIndicator[complete]
-
FABL.middleLayerIndicator_eq_one_iff_negative_count[complete]
-
FABL.discreteDerivative_majority_odd_last_eq_middleLayerIndicator[complete]
-
FABL.middleLayerIndicator_isSymmetric[complete]
-
FABL.noiseOperator_middleLayerIndicator_allOne_eq_product[complete]
-
FABL.noiseOperator_middleLayerIndicator_allOne_eq[complete]
-
FABL.noiseOperator_middleLayerIndicator_allOne_eq_fourierSum[complete]
-
FABL.noiseOperator_middleLayerIndicator_allOne_eq_groupedFourierSum[complete]
-
FABL.fourierCoeff_middleLayerIndicator[complete]
-
FABL.middleLayerIndicator[complete] -
FABL.middleLayerIndicator_eq_one_iff_negative_count[complete] -
FABL.discreteDerivative_majority_odd_last_eq_middleLayerIndicator[complete] -
FABL.middleLayerIndicator_isSymmetric[complete] -
FABL.noiseOperator_middleLayerIndicator_allOne_eq_product[complete] -
FABL.noiseOperator_middleLayerIndicator_allOne_eq[complete] -
FABL.noiseOperator_middleLayerIndicator_allOne_eq_fourierSum[complete] -
FABL.noiseOperator_middleLayerIndicator_allOne_eq_groupedFourierSum[complete] -
FABL.fourierCoeff_middleLayerIndicator[complete]
-
defdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
def FABL.middleLayerIndicator (m : ℕ) (x : FABL.SignCube (2 * m)) : ℝ
def FABL.middleLayerIndicator (m : ℕ) (x : FABL.SignCube (2 * m)) : ℝ
The real-valued indicator of the middle Hamming layer in the even-dimensional sign cube.
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.middleLayerIndicator_eq_one_iff_negative_count (m : ℕ) (x : FABL.SignCube (2 * m)) : FABL.middleLayerIndicator m x = 1 ↔ {i | x i = -1}.card = m
theorem FABL.middleLayerIndicator_eq_one_iff_negative_count (m : ℕ) (x : FABL.SignCube (2 * m)) : FABL.middleLayerIndicator m x = 1 ↔ {i | x i = -1}.card = m
On a `2m`-dimensional sign cube, the chosen positive-coordinate representation is exactly the book's indicator of strings with `m` negative coordinates.
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.discreteDerivative_majority_odd_last_eq_middleLayerIndicator (m : ℕ) (x : FABL.SignCube (2 * m)) : (FABL.discreteDerivative (Fin.last (2 * m))) (FABL.majority (2 * m + 1)).toReal (Fin.snoc x 1) = FABL.middleLayerIndicator m x
theorem FABL.discreteDerivative_majority_odd_last_eq_middleLayerIndicator (m : ℕ) (x : FABL.SignCube (2 * m)) : (FABL.discreteDerivative (Fin.last (2 * m))) (FABL.majority (2 * m + 1)).toReal (Fin.snoc x 1) = FABL.middleLayerIndicator m x
The first identity in O'Donnell's middle-layer calculation: the last discrete derivative of odd-arity majority is the indicator of the middle layer on the remaining coordinates.
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.middleLayerIndicator_isSymmetric (m : ℕ) : FABL.IsSymmetric (FABL.middleLayerIndicator m)
theorem FABL.middleLayerIndicator_isSymmetric (m : ℕ) : FABL.IsSymmetric (FABL.middleLayerIndicator m)
The middle-layer indicator is invariant under every coordinate permutation.
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.noiseOperator_middleLayerIndicator_allOne_eq_product (m : ℕ) (ρ : ℝ) (hρ : ρ ∈ Set.Icc (-1) 1) : ((FABL.noiseOperator ρ) (FABL.middleLayerIndicator m) fun x => 1) = ↑((2 * m).choose m) * ((1 + ρ) / 2) ^ m * ((1 - ρ) / 2) ^ m
theorem FABL.noiseOperator_middleLayerIndicator_allOne_eq_product (m : ℕ) (ρ : ℝ) (hρ : ρ ∈ Set.Icc (-1) 1) : ((FABL.noiseOperator ρ) (FABL.middleLayerIndicator m) fun x => 1) = ↑((2 * m).choose m) * ((1 + ρ) / 2) ^ m * ((1 - ρ) / 2) ^ m
Equation (5.13), first line: the noise operator at the all-ones input is the middle-layer probability under independent coordinate noise.
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.noiseOperator_middleLayerIndicator_allOne_eq (m : ℕ) (ρ : ℝ) (hρ : ρ ∈ Set.Icc (-1) 1) : ((FABL.noiseOperator ρ) (FABL.middleLayerIndicator m) fun x => 1) = ↑((2 * m).choose m) / 2 ^ (2 * m) * (1 - ρ ^ 2) ^ m
theorem FABL.noiseOperator_middleLayerIndicator_allOne_eq (m : ℕ) (ρ : ℝ) (hρ : ρ ∈ Set.Icc (-1) 1) : ((FABL.noiseOperator ρ) (FABL.middleLayerIndicator m) fun x => 1) = ↑((2 * m).choose m) / 2 ^ (2 * m) * (1 - ρ ^ 2) ^ m
Equation (5.13), second line: the middle-layer noise probability in its polynomial form.
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.noiseOperator_middleLayerIndicator_allOne_eq_fourierSum (m : ℕ) (ρ : ℝ) : ((FABL.noiseOperator ρ) (FABL.middleLayerIndicator m) fun x => 1) = ∑ U, FABL.fourierCoeff (FABL.middleLayerIndicator m) U * ρ ^ U.card
theorem FABL.noiseOperator_middleLayerIndicator_allOne_eq_fourierSum (m : ℕ) (ρ : ℝ) : ((FABL.noiseOperator ρ) (FABL.middleLayerIndicator m) fun x => 1) = ∑ U, FABL.fourierCoeff (FABL.middleLayerIndicator m) U * ρ ^ U.card
Equation (5.14), first equality: evaluation at the all-ones input turns every Walsh character into one.
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.noiseOperator_middleLayerIndicator_allOne_eq_groupedFourierSum (m : ℕ) (ρ : ℝ) (T : ℕ → Finset (Fin (2 * m))) (hT : ∀ i ≤ 2 * m, (T i).card = i) : ((FABL.noiseOperator ρ) (FABL.middleLayerIndicator m) fun x => 1) = ∑ i ∈ Finset.range (2 * m + 1), ↑((2 * m).choose i) * FABL.fourierCoeff (FABL.middleLayerIndicator m) (T i) * ρ ^ i
theorem FABL.noiseOperator_middleLayerIndicator_allOne_eq_groupedFourierSum (m : ℕ) (ρ : ℝ) (T : ℕ → Finset (Fin (2 * m))) (hT : ∀ i ≤ 2 * m, (T i).card = i) : ((FABL.noiseOperator ρ) (FABL.middleLayerIndicator m) fun x => 1) = ∑ i ∈ Finset.range (2 * m + 1), ↑((2 * m).choose i) * FABL.fourierCoeff (FABL.middleLayerIndicator m) (T i) * ρ ^ i
Equation (5.14), grouped by cardinality: any representative of each Fourier level may be used because the middle-layer indicator is symmetric.
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.fourierCoeff_middleLayerIndicator (m j : ℕ) (hj : j ≤ m) (T : Finset (Fin (2 * m))) (hT : T.card = 2 * j) : FABL.fourierCoeff (FABL.middleLayerIndicator m) T = (-1) ^ j * ↑(m.choose j) / ↑((2 * m).choose (2 * j)) * (1 / 2 ^ (2 * m)) * ↑((2 * m).choose m)
theorem FABL.fourierCoeff_middleLayerIndicator (m j : ℕ) (hj : j ≤ m) (T : Finset (Fin (2 * m))) (hT : T.card = 2 * j) : FABL.fourierCoeff (FABL.middleLayerIndicator m) T = (-1) ^ j * ↑(m.choose j) / ↑((2 * m).choose (2 * j)) * (1 / 2 ^ (2 * m)) * ↑((2 * m).choose m)
Equation (5.12): the exact Fourier coefficient of the middle Hamming layer on an even-dimensional sign cube.
Theorem 5.19. Let n be odd and let S\subseteq[n]. If |S| is even,
then
\widehat{\operatorname{Maj}_n}(S)=0.
If |S|=k is odd, then
\widehat{\operatorname{Maj}_n}(S)
=(-1)^{(k-1)/2}
\frac{\binom{(n-1)/2}{(k-1)/2}}{\binom{n-1}{k-1}}
\frac2{2^n}\binom{n-1}{(n-1)/2}.
Equivalently, when n=2m+1 and k=2j+1,
\widehat{\operatorname{Maj}_{2m+1}}(S)
=(-1)^j
\frac{\binom mj}{\binom{2m}{2j}}
\frac1{2^{2m}}\binom{2m}{m}.
Lean code for Theorem5.3.6●4 theorems
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.fourierCoeff_majority_odd_insert_last (m : ℕ) (T : Finset (Fin (2 * m))) : FABL.fourierCoeff (FABL.majority (2 * m + 1)).toReal (insert (Fin.last (2 * m)) (Finset.map Fin.castSuccEmb T)) = FABL.fourierCoeff (FABL.middleLayerIndicator m) T
theorem FABL.fourierCoeff_majority_odd_insert_last (m : ℕ) (T : Finset (Fin (2 * m))) : FABL.fourierCoeff (FABL.majority (2 * m + 1)).toReal (insert (Fin.last (2 * m)) (Finset.map Fin.castSuccEmb T)) = FABL.fourierCoeff (FABL.middleLayerIndicator m) T
The derivative step in Theorem 5.19: adjoining the last coordinate to a Fourier set of the middle layer gives the corresponding majority coefficient.
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.fourierCoeff_majority_eq_zero_of_odd_arity_of_even_card {n : ℕ} (hn : Odd n) (S : Finset (Fin n)) (hS : Even S.card) : FABL.fourierCoeff (FABL.majority n).toReal S = 0
theorem FABL.fourierCoeff_majority_eq_zero_of_odd_arity_of_even_card {n : ℕ} (hn : Odd n) (S : Finset (Fin n)) (hS : Even S.card) : FABL.fourierCoeff (FABL.majority n).toReal S = 0
Theorem 5.19, even-cardinality case.
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.fourierCoeff_majority_two_mul_add_one (m j : ℕ) (S : Finset (Fin (2 * m + 1))) (hS : S.card = 2 * j + 1) : FABL.fourierCoeff (FABL.majority (2 * m + 1)).toReal S = (-1) ^ j * ↑(m.choose j) / ↑((2 * m).choose (2 * j)) * (1 / 2 ^ (2 * m)) * ↑((2 * m).choose m)
theorem FABL.fourierCoeff_majority_two_mul_add_one (m j : ℕ) (S : Finset (Fin (2 * m + 1))) (hS : S.card = 2 * j + 1) : FABL.fourierCoeff (FABL.majority (2 * m + 1)).toReal S = (-1) ^ j * ↑(m.choose j) / ↑((2 * m).choose (2 * j)) * (1 / 2 ^ (2 * m)) * ↑((2 * m).choose m)
Theorem 5.19 in the equivalent parametrization `n = 2m+1`, `|S| = 2j+1`.
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.fourierCoeff_majority_of_odd_arity_of_card_eq_odd {n k : ℕ} (hn : Odd n) (hk : Odd k) (S : Finset (Fin n)) (hS : S.card = k) : FABL.fourierCoeff (FABL.majority n).toReal S = (-1) ^ ((k - 1) / 2) * ↑(((n - 1) / 2).choose ((k - 1) / 2)) / ↑((n - 1).choose (k - 1)) * (2 / 2 ^ n) * ↑((n - 1).choose ((n - 1) / 2))
theorem FABL.fourierCoeff_majority_of_odd_arity_of_card_eq_odd {n k : ℕ} (hn : Odd n) (hk : Odd k) (S : Finset (Fin n)) (hS : S.card = k) : FABL.fourierCoeff (FABL.majority n).toReal S = (-1) ^ ((k - 1) / 2) * ↑(((n - 1) / 2).choose ((k - 1) / 2)) / ↑((n - 1).choose (k - 1)) * (2 / 2 ^ n) * ↑((n - 1).choose ((n - 1) / 2))
Theorem 5.19, odd-cardinality case, in the book's `n,k` notation.
-
FABL.fourierCoeff_majority_complementary[complete]
Exercise 5.20. Prove that for odd n and S,T\subseteq[n] satisfying
|S|+|T|=n+1,
\widehat{\operatorname{Maj}_n}(S)
=(-1)^{(n-1)/2}\widehat{\operatorname{Maj}_n}(T),
and deduce that, for 1\le k\le n,
\mathbf W^{n-k+1}[\operatorname{Maj}_n]
=\frac{k}{n-k+1}\mathbf W^k[\operatorname{Maj}_n].
Lean code for Lemma5.3.7●1 theorem
Associated Lean declarations
-
FABL.fourierCoeff_majority_complementary[complete]
-
FABL.fourierCoeff_majority_complementary[complete]
-
theoremdefined in FABL/Chapter05/MajorityComplementaryWeights.leancomplete
theorem FABL.fourierCoeff_majority_complementary {n : ℕ} (hn : Odd n) (S T : Finset (Fin n)) (hcard : S.card + T.card = n + 1) : FABL.fourierCoeff (FABL.majority n).toReal S = (-1) ^ ((n - 1) / 2) * FABL.fourierCoeff (FABL.majority n).toReal T
theorem FABL.fourierCoeff_majority_complementary {n : ℕ} (hn : Odd n) (S T : Finset (Fin n)) (hcard : S.card + T.card = n + 1) : FABL.fourierCoeff (FABL.majority n).toReal S = (-1) ^ ((n - 1) / 2) * FABL.fourierCoeff (FABL.majority n).toReal T
Exercise 5.20 and Corollary 5.20: Fourier coefficients of odd-arity majority at complementary cardinalities agree up to the middle-level sign.
Corollary 5.20. Let n be odd. Whenever S,T\subseteq[n] satisfy
|S|+|T|=n+1,
\widehat{\operatorname{Maj}_n}(S)
=(-1)^{(n-1)/2}\widehat{\operatorname{Maj}_n}(T).
Hence, for every 1\le k\le n,
\mathbf W^{n-k+1}[\operatorname{Maj}_n]
=\frac{k}{n-k+1}\mathbf W^k[\operatorname{Maj}_n].
Lean code for Corollary5.3.8●1 theorem
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/MajorityComplementaryWeights.leancomplete
theorem FABL.fourierWeightAtLevel_majority_complementary {n : ℕ} (hn : Odd n) (k : ℕ) (hk : 1 ≤ k) (hkn : k ≤ n) : FABL.fourierWeightAtLevel (n - k + 1) (FABL.majority n).toReal = ↑k / ↑(n - k + 1) * FABL.fourierWeightAtLevel k (FABL.majority n).toReal
theorem FABL.fourierWeightAtLevel_majority_complementary {n : ℕ} (hn : Odd n) (k : ℕ) (hk : 1 ≤ k) (hkn : k ≤ n) : FABL.fourierWeightAtLevel (n - k + 1) (FABL.majority n).toReal = ↑k / ↑(n - k + 1) * FABL.fourierWeightAtLevel k (FABL.majority n).toReal
Exercise 5.20 and Corollary 5.20: complementary Fourier levels of odd-arity majority differ by the ratio of their cardinalities.
Exercise 5.22. Fix an odd positive integer k. Prove that
\mathbf W^k[\operatorname{Maj}_n] is a strictly decreasing function of
n as n ranges through the odd integers with n\ge k.
Lean code for Lemma5.3.9●4 theorems
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/MajorityWeightMonotonicity.leancomplete
theorem FABL.fourierWeightAtLevel_majority_eq_choose_mul (n k : ℕ) (S : Finset (Fin n)) (hS : S.card = k) : FABL.fourierWeightAtLevel k (FABL.majority n).toReal = ↑(n.choose k) * FABL.fourierWeight (FABL.majority n).toReal S
theorem FABL.fourierWeightAtLevel_majority_eq_choose_mul (n k : ℕ) (S : Finset (Fin n)) (hS : S.card = k) : FABL.fourierWeightAtLevel k (FABL.majority n).toReal = ↑(n.choose k) * FABL.fourierWeight (FABL.majority n).toReal S
A symmetric level of majority consists of `n.choose k` equal Fourier weights.
-
theoremdefined in FABL/Chapter05/MajorityWeightMonotonicity.leancomplete
theorem FABL.fourierCoeff_majority_next_odd_eq (m j : ℕ) (hj : j ≤ m) (S : Finset (Fin (2 * m + 1))) (hS : S.card = 2 * j + 1) (T : Finset (Fin (2 * (m + 1) + 1))) (hT : T.card = 2 * j + 1) : FABL.fourierCoeff (FABL.majority (2 * (m + 1) + 1)).toReal T = ↑(2 * (m - j) + 1) / ↑(2 * (m + 1)) * FABL.fourierCoeff (FABL.majority (2 * m + 1)).toReal S
theorem FABL.fourierCoeff_majority_next_odd_eq (m j : ℕ) (hj : j ≤ m) (S : Finset (Fin (2 * m + 1))) (hS : S.card = 2 * j + 1) (T : Finset (Fin (2 * (m + 1) + 1))) (hT : T.card = 2 * j + 1) : FABL.fourierCoeff (FABL.majority (2 * (m + 1) + 1)).toReal T = ↑(2 * (m - j) + 1) / ↑(2 * (m + 1)) * FABL.fourierCoeff (FABL.majority (2 * m + 1)).toReal S
Theorem 5.19 implies an exact ratio between corresponding fixed-level coefficients in two consecutive odd dimensions.
-
theoremdefined in FABL/Chapter05/MajorityWeightMonotonicity.leancomplete
theorem FABL.fourierWeightAtLevel_majority_next_odd_eq (m j : ℕ) (hj : j ≤ m) : FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * (m + 1) + 1)).toReal = ↑(2 * m + 3) * ↑(2 * (m - j) + 1) / (↑(2 * m + 2) * ↑(2 * (m - j) + 2)) * FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * m + 1)).toReal
theorem FABL.fourierWeightAtLevel_majority_next_odd_eq (m j : ℕ) (hj : j ≤ m) : FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * (m + 1) + 1)).toReal = ↑(2 * m + 3) * ↑(2 * (m - j) + 1) / (↑(2 * m + 2) * ↑(2 * (m - j) + 2)) * FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * m + 1)).toReal
Exercise 5.22, exact adjacent-step identity for a fixed positive odd level.
-
theoremdefined in FABL/Chapter05/MajorityWeightMonotonicity.leancomplete
theorem FABL.fourierWeightAtLevel_majority_next_odd_lt (m j : ℕ) (hj : j ≤ m) : FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * (m + 1) + 1)).toReal < FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * m + 1)).toReal
theorem FABL.fourierWeightAtLevel_majority_next_odd_lt (m j : ℕ) (hj : j ≤ m) : FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * (m + 1) + 1)).toReal < FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * m + 1)).toReal
Exercise 5.22: increasing odd arity by two strictly decreases every available fixed positive odd Fourier level.
Corollary 5.21. For every fixed odd positive integer k,
\mathbf W^k[\operatorname{Maj}_n] is a strictly decreasing function of
n as n ranges through the odd integers with n\ge k.
Lean code for Corollary5.3.10●2 theorems
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/MajorityWeightMonotonicity.leancomplete
theorem FABL.fourierWeightAtLevel_majority_odd_sequence_strictAnti (j : ℕ) : StrictAnti fun r => FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * (j + r) + 1)).toReal
theorem FABL.fourierWeightAtLevel_majority_odd_sequence_strictAnti (j : ℕ) : StrictAnti fun r => FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * (j + r) + 1)).toReal
Corollary 5.21 in its canonical sequence form: for fixed level `2j+1`, the Fourier weight is strictly decreasing along all odd arities at least `2j+1`.
-
theoremdefined in FABL/Chapter05/MajorityWeightMonotonicity.leancomplete
theorem FABL.fourierWeightAtLevel_majority_strict_decreasing {k n₁ n₂ : ℕ} (hkPos : 0 < k) (hkOdd : Odd k) (hn₁Odd : Odd n₁) (hn₂Odd : Odd n₂) (hkn₁ : k ≤ n₁) (hn₁n₂ : n₁ < n₂) : FABL.fourierWeightAtLevel k (FABL.majority n₂).toReal < FABL.fourierWeightAtLevel k (FABL.majority n₁).toReal
theorem FABL.fourierWeightAtLevel_majority_strict_decreasing {k n₁ n₂ : ℕ} (hkPos : 0 < k) (hkOdd : Odd k) (hn₁Odd : Odd n₁) (hn₂Odd : Odd n₂) (hkn₁ : k ≤ n₁) (hn₁n₂ : n₁ < n₂) : FABL.fourierWeightAtLevel k (FABL.majority n₂).toReal < FABL.fourierWeightAtLevel k (FABL.majority n₁).toReal
Corollary 5.21 in the book's `k,n` notation.
-
FABL.noiseStability_majority_next_odd_le[complete] -
FABL.noiseStability_majority_next_odd_lt[complete] -
FABL.noiseStability_majority_odd_antitone[complete] -
FABL.noiseStability_majority_odd_strictAnti[complete] -
FABL.two_div_pi_mul_arcsin_le_noiseStability_majority_odd[complete] -
FABL.exists_noiseStability_majority_odd_le_arcsine_add_inv_sqrt[complete]
Exercise 5.23. Prove Theorem 5.18: for every \rho\in[0,1),
\operatorname{Stab}_\rho[\operatorname{Maj}_n] decreases as n ranges
through the positive odd integers, and
\frac2\pi\arcsin\rho
\le \operatorname{Stab}_\rho[\operatorname{Maj}_n]
\le \frac2\pi\arcsin\rho
+O_\rho\left(\frac1{\sqrt{1-\rho^2}\sqrt n}\right).
Use Corollary 5.21 for the monotonicity.
Lean code for Lemma5.3.11●6 theorems
Associated Lean declarations
-
FABL.noiseStability_majority_next_odd_le[complete]
-
FABL.noiseStability_majority_next_odd_lt[complete]
-
FABL.noiseStability_majority_odd_antitone[complete]
-
FABL.noiseStability_majority_odd_strictAnti[complete]
-
FABL.two_div_pi_mul_arcsin_le_noiseStability_majority_odd[complete]
-
FABL.exists_noiseStability_majority_odd_le_arcsine_add_inv_sqrt[complete]
-
FABL.noiseStability_majority_next_odd_le[complete] -
FABL.noiseStability_majority_next_odd_lt[complete] -
FABL.noiseStability_majority_odd_antitone[complete] -
FABL.noiseStability_majority_odd_strictAnti[complete] -
FABL.two_div_pi_mul_arcsin_le_noiseStability_majority_odd[complete] -
FABL.exists_noiseStability_majority_odd_le_arcsine_add_inv_sqrt[complete]
-
theoremdefined in FABL/Chapter05/MajorityNoiseStability.leancomplete
theorem FABL.noiseStability_majority_next_odd_le (m : ℕ) {ρ : ℝ} (hρ : ρ ∈ Set.Ico 0 1) : FABL.noiseStability ρ ⋯ (FABL.majority (2 * (m + 1) + 1)).toReal ≤ FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal
theorem FABL.noiseStability_majority_next_odd_le (m : ℕ) {ρ : ℝ} (hρ : ρ ∈ Set.Ico 0 1) : FABL.noiseStability ρ ⋯ (FABL.majority (2 * (m + 1) + 1)).toReal ≤ FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal
Exercise 5.23, adjacent-step form: odd-majority noise stability is nonincreasing for every nonnegative correlation below one.
-
theoremdefined in FABL/Chapter05/MajorityNoiseStability.leancomplete
theorem FABL.noiseStability_majority_next_odd_lt (m : ℕ) {ρ : ℝ} (hρ : ρ ∈ Set.Ioo 0 1) : FABL.noiseStability ρ ⋯ (FABL.majority (2 * (m + 1) + 1)).toReal < FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal
theorem FABL.noiseStability_majority_next_odd_lt (m : ℕ) {ρ : ℝ} (hρ : ρ ∈ Set.Ioo 0 1) : FABL.noiseStability ρ ⋯ (FABL.majority (2 * (m + 1) + 1)).toReal < FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal
Exercise 5.23, strict adjacent-step form: the decrease is strict when the correlation is strictly between zero and one.
-
theoremdefined in FABL/Chapter05/MajorityNoiseStability.leancomplete
theorem FABL.noiseStability_majority_odd_antitone (ρ : ℝ) (hρ : ρ ∈ Set.Ico 0 1) : Antitone fun m => FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal
theorem FABL.noiseStability_majority_odd_antitone (ρ : ℝ) (hρ : ρ ∈ Set.Ico 0 1) : Antitone fun m => FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal
Exercise 5.23: at every `ρ ∈ [0,1)`, odd-majority noise stability is antitone in the half-arity parameter. At `ρ = 0` every term is zero.
-
theoremdefined in FABL/Chapter05/MajorityNoiseStability.leancomplete
theorem FABL.noiseStability_majority_odd_strictAnti (ρ : ℝ) (hρ : ρ ∈ Set.Ioo 0 1) : StrictAnti fun m => FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal
theorem FABL.noiseStability_majority_odd_strictAnti (ρ : ℝ) (hρ : ρ ∈ Set.Ioo 0 1) : StrictAnti fun m => FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal
Exercise 5.23, strengthened away from the endpoint: at every `ρ ∈ (0,1)`, odd-majority noise stability is strictly antitone.
-
theoremdefined in FABL/Chapter05/MajorityNoiseStability.leancomplete
theorem FABL.two_div_pi_mul_arcsin_le_noiseStability_majority_odd (m : ℕ) {ρ : ℝ} (hρ : ρ ∈ Set.Ico 0 1) : 2 / Real.pi * Real.arcsin ρ ≤ FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal
theorem FABL.two_div_pi_mul_arcsin_le_noiseStability_majority_odd (m : ℕ) {ρ : ℝ} (hρ : ρ ∈ Set.Ico 0 1) : 2 / Real.pi * Real.arcsin ρ ≤ FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal
The lower bound in Theorem 5.18: finite odd majority lies above its Gaussian arcsine limit.
-
theoremdefined in FABL/Chapter05/MajorityNoiseStability.leancomplete
theorem FABL.exists_noiseStability_majority_odd_le_arcsine_add_inv_sqrt : ∃ C, 0 < C ∧ ∀ (m : ℕ) {ρ : ℝ} (hρ : ρ ∈ Set.Ico 0 1), FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal ≤ 2 / Real.pi * Real.arcsin ρ + C / (√(1 - ρ ^ 2) * √↑(2 * m + 1))
theorem FABL.exists_noiseStability_majority_odd_le_arcsine_add_inv_sqrt : ∃ C, 0 < C ∧ ∀ (m : ℕ) {ρ : ℝ} (hρ : ρ ∈ Set.Ico 0 1), FABL.noiseStability ρ ⋯ (FABL.majority (2 * m + 1)).toReal ≤ 2 / Real.pi * Real.arcsin ρ + C / (√(1 - ρ ^ 2) * √↑(2 * m + 1))
The quantitative upper bound in Theorem 5.18, obtained by specializing the regular homogeneous-threshold invariance bound to equal majority weights.
Exercise 5.24. For integers n,k satisfying 1\le k\le n/2, prove
\left(1-\frac{k+1}{n}+\frac{k}{n^2}\right)^{-1/2}
\le 1+\frac{2k}{n}.
Lean code for Lemma5.3.12●1 theorem
Associated Lean declarations
-
FABL.exercise5_24[complete]
-
FABL.exercise5_24[complete]
-
theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.leancomplete
theorem FABL.exercise5_24 (k n : ℕ) (hk : 1 ≤ k) (hkn : 2 * k ≤ n) : (1 - ↑(k + 1) / ↑n + ↑k / ↑n ^ 2) ^ (-(1 / 2)) ≤ 1 + 2 * ↑k / ↑n
theorem FABL.exercise5_24 (k n : ℕ) (hk : 1 ≤ k) (hkn : 2 * k ≤ n) : (1 - ↑(k + 1) / ↑n + ↑k / ↑n ^ 2) ^ (-(1 / 2)) ≤ 1 + 2 * ↑k / ↑n
Exercise 5.24: the elementary estimate used in the monotonicity of majority's fixed-level Fourier weights.
-
FABL.limitingMajorityFourierWeight_pos_of_odd[complete] -
FABL.fourierWeightAtLevel_majority_two_mul_add_one_eq_limiting_mul[complete] -
FABL.limitingMajorityFourierWeight_le_fourierWeightAtLevel_majority[complete] -
FABL.fourierWeightAtLevel_majority_le_limitingMajorityFourierWeight[complete] -
FABL.majorityFourierWeight_bounds[complete] -
FABL.fourierWeightAtLevel_majority_odd_tendsto[complete] -
FABL.fourierWeightAtLevel_majority_odd_strictAnti_and_tendsto[complete]
Theorem 5.22. For each fixed odd positive integer k,
\mathbf W^k[\operatorname{Maj}_n]
\searrow
[\rho^k]\left(\frac2\pi\arcsin\rho\right)
=\frac{4}{\pi k2^k}\binom{k-1}{(k-1)/2}
as n\ge k tends to infinity through the odd integers. Moreover, for every
odd n and odd k with k<n/2,
[\rho^k]\left(\frac2\pi\arcsin\rho\right)
\le \mathbf W^k[\operatorname{Maj}_n]
\le
\left(1+\frac{2k}{n}\right)
[\rho^k]\left(\frac2\pi\arcsin\rho\right).
\tag{5.15}
For k>n/2, Corollary 5.20 converts the estimate to the complementary
Fourier level.
Lean code for Theorem5.3.13●7 theorems
Associated Lean declarations
-
FABL.limitingMajorityFourierWeight_pos_of_odd[complete]
-
FABL.fourierWeightAtLevel_majority_two_mul_add_one_eq_limiting_mul[complete]
-
FABL.limitingMajorityFourierWeight_le_fourierWeightAtLevel_majority[complete]
-
FABL.fourierWeightAtLevel_majority_le_limitingMajorityFourierWeight[complete]
-
FABL.majorityFourierWeight_bounds[complete]
-
FABL.fourierWeightAtLevel_majority_odd_tendsto[complete]
-
FABL.fourierWeightAtLevel_majority_odd_strictAnti_and_tendsto[complete]
-
FABL.limitingMajorityFourierWeight_pos_of_odd[complete] -
FABL.fourierWeightAtLevel_majority_two_mul_add_one_eq_limiting_mul[complete] -
FABL.limitingMajorityFourierWeight_le_fourierWeightAtLevel_majority[complete] -
FABL.fourierWeightAtLevel_majority_le_limitingMajorityFourierWeight[complete] -
FABL.majorityFourierWeight_bounds[complete] -
FABL.fourierWeightAtLevel_majority_odd_tendsto[complete] -
FABL.fourierWeightAtLevel_majority_odd_strictAnti_and_tendsto[complete]
-
theoremdefined in FABL/Chapter05/MajorityFourierWeightLimits.leancomplete
theorem FABL.limitingMajorityFourierWeight_pos_of_odd {k : ℕ} (hk : Odd k) : 0 < FABL.limitingMajorityFourierWeight k
theorem FABL.limitingMajorityFourierWeight_pos_of_odd {k : ℕ} (hk : Odd k) : 0 < FABL.limitingMajorityFourierWeight k
Every positive odd limiting majority weight is strictly positive.
-
theoremdefined in FABL/Chapter05/MajorityFourierWeightLimits.leancomplete
theorem FABL.fourierWeightAtLevel_majority_two_mul_add_one_eq_limiting_mul (m j : ℕ) (hj : j ≤ m) : FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * m + 1)).toReal = FABL.limitingMajorityFourierWeight (2 * j + 1) * (Real.pi / 2 * ↑(2 * m + 1) * FABL.oddMajorityInfluence (m - j) * FABL.oddMajorityInfluence m)
theorem FABL.fourierWeightAtLevel_majority_two_mul_add_one_eq_limiting_mul (m j : ℕ) (hj : j ≤ m) : FABL.fourierWeightAtLevel (2 * j + 1) (FABL.majority (2 * m + 1)).toReal = FABL.limitingMajorityFourierWeight (2 * j + 1) * (Real.pi / 2 * ↑(2 * m + 1) * FABL.oddMajorityInfluence (m - j) * FABL.oddMajorityInfluence m)
The exact central-binomial factorization used in Theorem 5.22.
-
theoremdefined in FABL/Chapter05/MajorityFourierWeightLimits.leancomplete
theorem FABL.limitingMajorityFourierWeight_le_fourierWeightAtLevel_majority {n k : ℕ} (hn : Odd n) (hk : Odd k) (hkn : k ≤ n) : FABL.limitingMajorityFourierWeight k ≤ FABL.fourierWeightAtLevel k (FABL.majority n).toReal
theorem FABL.limitingMajorityFourierWeight_le_fourierWeightAtLevel_majority {n k : ℕ} (hn : Odd n) (hk : Odd k) (hkn : k ≤ n) : FABL.limitingMajorityFourierWeight k ≤ FABL.fourierWeightAtLevel k (FABL.majority n).toReal
Theorem 5.22, lower half of (5.15).
-
theoremdefined in FABL/Chapter05/MajorityFourierWeightLimits.leancomplete
theorem FABL.fourierWeightAtLevel_majority_le_limitingMajorityFourierWeight {n k : ℕ} (hn : Odd n) (hk : Odd k) (hkn : 2 * k < n) : FABL.fourierWeightAtLevel k (FABL.majority n).toReal ≤ (1 + 2 * ↑k / ↑n) * FABL.limitingMajorityFourierWeight k
theorem FABL.fourierWeightAtLevel_majority_le_limitingMajorityFourierWeight {n k : ℕ} (hn : Odd n) (hk : Odd k) (hkn : 2 * k < n) : FABL.fourierWeightAtLevel k (FABL.majority n).toReal ≤ (1 + 2 * ↑k / ↑n) * FABL.limitingMajorityFourierWeight k
Theorem 5.22, upper half of (5.15).
-
theoremdefined in FABL/Chapter05/MajorityFourierWeightLimits.leancomplete
theorem FABL.majorityFourierWeight_bounds {n k : ℕ} (hn : Odd n) (hk : Odd k) (hkn : 2 * k < n) : FABL.limitingMajorityFourierWeight k ≤ FABL.fourierWeightAtLevel k (FABL.majority n).toReal ∧ FABL.fourierWeightAtLevel k (FABL.majority n).toReal ≤ (1 + 2 * ↑k / ↑n) * FABL.limitingMajorityFourierWeight k
theorem FABL.majorityFourierWeight_bounds {n k : ℕ} (hn : Odd n) (hk : Odd k) (hkn : 2 * k < n) : FABL.limitingMajorityFourierWeight k ≤ FABL.fourierWeightAtLevel k (FABL.majority n).toReal ∧ FABL.fourierWeightAtLevel k (FABL.majority n).toReal ≤ (1 + 2 * ↑k / ↑n) * FABL.limitingMajorityFourierWeight k
Theorem 5.22, the complete two-sided estimate (5.15).
-
theoremdefined in FABL/Chapter05/MajorityFourierWeightLimits.leancomplete
theorem FABL.fourierWeightAtLevel_majority_odd_tendsto {k : ℕ} (hk : Odd k) : Filter.Tendsto (fun r => FABL.fourierWeightAtLevel k (FABL.majority (k + 2 * r)).toReal) Filter.atTop (nhds (FABL.limitingMajorityFourierWeight k))
theorem FABL.fourierWeightAtLevel_majority_odd_tendsto {k : ℕ} (hk : Odd k) : Filter.Tendsto (fun r => FABL.fourierWeightAtLevel k (FABL.majority (k + 2 * r)).toReal) Filter.atTop (nhds (FABL.limitingMajorityFourierWeight k))
Theorem 5.22: for fixed positive odd level `k`, the Fourier weight tends to its arcsine-series coefficient as `n` ranges over all odd arities `n ≥ k`.
-
theoremdefined in FABL/Chapter05/MajorityFourierWeightLimits.leancomplete
theorem FABL.fourierWeightAtLevel_majority_odd_strictAnti_and_tendsto {k : ℕ} (hk : Odd k) : (StrictAnti fun r => FABL.fourierWeightAtLevel k (FABL.majority (k + 2 * r)).toReal) ∧ Filter.Tendsto (fun r => FABL.fourierWeightAtLevel k (FABL.majority (k + 2 * r)).toReal) Filter.atTop (nhds (FABL.limitingMajorityFourierWeight k))
theorem FABL.fourierWeightAtLevel_majority_odd_strictAnti_and_tendsto {k : ℕ} (hk : Odd k) : (StrictAnti fun r => FABL.fourierWeightAtLevel k (FABL.majority (k + 2 * r)).toReal) ∧ Filter.Tendsto (fun r => FABL.fourierWeightAtLevel k (FABL.majority (k + 2 * r)).toReal) Filter.atTop (nhds (FABL.limitingMajorityFourierWeight k))
Theorem 5.22 in the book's `searrow` form. The parameter `r` enumerates exactly all odd arities `n ≥ k`, via `n = k + 2r`.
-
FABL.majorityFourierLevelMain[complete] -
FABL.majorityFourierTailMain[complete] -
FABL.majorityFourierLevelMain_pos[complete] -
FABL.majorityFourierTailMain_pos[complete] -
FABL.limitingMajorityFourierWeight_two_mul_add_one_eq[complete] -
FABL.majorityFourierLevelMain_two_mul_add_one_eq[complete] -
FABL.limitingMajorityFourierWeightError[complete] -
FABL.limitingMajorityFourierWeightError_mem_Icc[complete] -
FABL.majorityFourierLevelMain_le_limitingMajorityFourierWeight[complete] -
FABL.limitingMajorityFourierWeight_le_levelMain_mul[complete] -
FABL.limitingMajorityFourierWeightError_isBigO[complete] -
FABL.limitingMajorityFourierWeightAbove_eq_tsum_odd[complete] -
FABL.limitingMajorityFourierWeightAbove_mem_Icc[complete] -
FABL.abs_limitingMajorityFourierWeightAbove_div_tailMain_sub_one_le[complete] -
FABL.limitingMajorityFourierWeightAbove_relativeError_isBigO[complete] -
FABL.abs_fourierWeightAtLevel_majority_div_levelMain_sub_one_le[complete] -
FABL.abs_fourierWeightAbove_majority_div_tailMain_sub_one_le[complete] -
FABL.majorityFourierLevel_family_relativeError_isBigO[complete] -
FABL.majorityFourierTail_family_relativeError_isBigO[complete] -
FABL.tendsto_limitingMajorityFourierWeightAbove_odd_zero[complete]
Exercise 5.27.
(a) For every odd positive integer k, prove
\left(\frac2\pi\right)^{3/2}k^{-3/2}
\le
[\rho^k]\left(\frac2\pi\arcsin\rho\right)
\le
\left(\frac2\pi\right)^{3/2}k^{-3/2}
\left(1+O(1/k)\right).
(b) Let k tend to infinity through the odd positive integers, and let
n=n(k) be odd with n\ge2k^2. Prove
\mathbf W^k[\operatorname{Maj}_n]
=\left(\frac2\pi\right)^{3/2}k^{-3/2}
\left(1\pm O(1/k)\right),
\mathbf W^{>k}[\operatorname{Maj}_n]
=\left(\frac2\pi\right)^{3/2}k^{-1/2}
\left(1\pm O(1/k)\right),
using an integral comparison for the second estimate. Deduce that the Fourier
spectrum of \operatorname{Maj}_n is \epsilon-concentrated up to degree
\frac8{\pi^3}\epsilon^{-2}+O_\epsilon(1).
Lean code for Lemma5.3.14●20 declarations
Associated Lean declarations
-
FABL.majorityFourierLevelMain[complete]
-
FABL.majorityFourierTailMain[complete]
-
FABL.majorityFourierLevelMain_pos[complete]
-
FABL.majorityFourierTailMain_pos[complete]
-
FABL.limitingMajorityFourierWeight_two_mul_add_one_eq[complete]
-
FABL.majorityFourierLevelMain_two_mul_add_one_eq[complete]
-
FABL.limitingMajorityFourierWeightError[complete]
-
FABL.limitingMajorityFourierWeightError_mem_Icc[complete]
-
FABL.majorityFourierLevelMain_le_limitingMajorityFourierWeight[complete]
-
FABL.limitingMajorityFourierWeight_le_levelMain_mul[complete]
-
FABL.limitingMajorityFourierWeightError_isBigO[complete]
-
FABL.limitingMajorityFourierWeightAbove_eq_tsum_odd[complete]
-
FABL.limitingMajorityFourierWeightAbove_mem_Icc[complete]
-
FABL.abs_limitingMajorityFourierWeightAbove_div_tailMain_sub_one_le[complete]
-
FABL.limitingMajorityFourierWeightAbove_relativeError_isBigO[complete]
-
FABL.abs_fourierWeightAtLevel_majority_div_levelMain_sub_one_le[complete]
-
FABL.abs_fourierWeightAbove_majority_div_tailMain_sub_one_le[complete]
-
FABL.majorityFourierLevel_family_relativeError_isBigO[complete]
-
FABL.majorityFourierTail_family_relativeError_isBigO[complete]
-
FABL.tendsto_limitingMajorityFourierWeightAbove_odd_zero[complete]
-
FABL.majorityFourierLevelMain[complete] -
FABL.majorityFourierTailMain[complete] -
FABL.majorityFourierLevelMain_pos[complete] -
FABL.majorityFourierTailMain_pos[complete] -
FABL.limitingMajorityFourierWeight_two_mul_add_one_eq[complete] -
FABL.majorityFourierLevelMain_two_mul_add_one_eq[complete] -
FABL.limitingMajorityFourierWeightError[complete] -
FABL.limitingMajorityFourierWeightError_mem_Icc[complete] -
FABL.majorityFourierLevelMain_le_limitingMajorityFourierWeight[complete] -
FABL.limitingMajorityFourierWeight_le_levelMain_mul[complete] -
FABL.limitingMajorityFourierWeightError_isBigO[complete] -
FABL.limitingMajorityFourierWeightAbove_eq_tsum_odd[complete] -
FABL.limitingMajorityFourierWeightAbove_mem_Icc[complete] -
FABL.abs_limitingMajorityFourierWeightAbove_div_tailMain_sub_one_le[complete] -
FABL.limitingMajorityFourierWeightAbove_relativeError_isBigO[complete] -
FABL.abs_fourierWeightAtLevel_majority_div_levelMain_sub_one_le[complete] -
FABL.abs_fourierWeightAbove_majority_div_tailMain_sub_one_le[complete] -
FABL.majorityFourierLevel_family_relativeError_isBigO[complete] -
FABL.majorityFourierTail_family_relativeError_isBigO[complete] -
FABL.tendsto_limitingMajorityFourierWeightAbove_odd_zero[complete]
-
defdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
def FABL.majorityFourierLevelMain (k : ℕ) : ℝ
def FABL.majorityFourierLevelMain (k : ℕ) : ℝ
The leading term in Exercise 5.27(a).
-
defdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
def FABL.majorityFourierTailMain (k : ℕ) : ℝ
def FABL.majorityFourierTailMain (k : ℕ) : ℝ
The leading term in Exercise 5.27(b) for Fourier weight above level `k`.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.majorityFourierLevelMain_pos {k : ℕ} (hk : 0 < k) : 0 < FABL.majorityFourierLevelMain k
theorem FABL.majorityFourierLevelMain_pos {k : ℕ} (hk : 0 < k) : 0 < FABL.majorityFourierLevelMain k
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.majorityFourierTailMain_pos {k : ℕ} (hk : 0 < k) : 0 < FABL.majorityFourierTailMain k
theorem FABL.majorityFourierTailMain_pos {k : ℕ} (hk : 0 < k) : 0 < FABL.majorityFourierTailMain k
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.limitingMajorityFourierWeight_two_mul_add_one_eq (j : ℕ) : FABL.limitingMajorityFourierWeight (2 * j + 1) = 2 / (Real.pi * ↑(2 * j + 1)) * FABL.oddMajorityInfluence j
theorem FABL.limitingMajorityFourierWeight_two_mul_add_one_eq (j : ℕ) : FABL.limitingMajorityFourierWeight (2 * j + 1) = 2 / (Real.pi * ↑(2 * j + 1)) * FABL.oddMajorityInfluence j
The arcsine coefficient at `2j+1` is the central-binomial probability from Exercise 2.22 multiplied by `2 / (π(2j+1))`.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.majorityFourierLevelMain_two_mul_add_one_eq (j : ℕ) : FABL.majorityFourierLevelMain (2 * j + 1) = 2 / (Real.pi * ↑(2 * j + 1)) * FABL.oddMajorityInfluenceMain j
theorem FABL.majorityFourierLevelMain_two_mul_add_one_eq (j : ℕ) : FABL.majorityFourierLevelMain (2 * j + 1) = 2 / (Real.pi * ↑(2 * j + 1)) * FABL.oddMajorityInfluenceMain j
The central-binomial main term from Exercise 2.22 is exactly the leading term in Exercise 5.27(a).
-
defdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
def FABL.limitingMajorityFourierWeightError (k : ℕ) : ℝ
def FABL.limitingMajorityFourierWeightError (k : ℕ) : ℝ
The nonnegative remainder in Exercise 5.27(a).
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.limitingMajorityFourierWeightError_mem_Icc {k : ℕ} (hk : Odd k) : FABL.limitingMajorityFourierWeightError k ∈ Set.Icc 0 (FABL.majorityFourierLevelMain k / ↑k)
theorem FABL.limitingMajorityFourierWeightError_mem_Icc {k : ℕ} (hk : Odd k) : FABL.limitingMajorityFourierWeightError k ∈ Set.Icc 0 (FABL.majorityFourierLevelMain k / ↑k)
Exercise 5.27(a), with an explicit global remainder interval on positive odd levels.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.majorityFourierLevelMain_le_limitingMajorityFourierWeight {k : ℕ} (hk : Odd k) : FABL.majorityFourierLevelMain k ≤ FABL.limitingMajorityFourierWeight k
theorem FABL.majorityFourierLevelMain_le_limitingMajorityFourierWeight {k : ℕ} (hk : Odd k) : FABL.majorityFourierLevelMain k ≤ FABL.limitingMajorityFourierWeight k
Exercise 5.27(a), lower estimate.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.limitingMajorityFourierWeight_le_levelMain_mul {k : ℕ} (hk : Odd k) : FABL.limitingMajorityFourierWeight k ≤ FABL.majorityFourierLevelMain k * (1 + 1 / ↑k)
theorem FABL.limitingMajorityFourierWeight_le_levelMain_mul {k : ℕ} (hk : Odd k) : FABL.limitingMajorityFourierWeight k ≤ FABL.majorityFourierLevelMain k * (1 + 1 / ↑k)
Exercise 5.27(a), upper estimate with the literal factor `1 + 1/k`.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.limitingMajorityFourierWeightError_isBigO : (fun k => FABL.limitingMajorityFourierWeightError ↑k) =O[Filter.atTop] fun k => FABL.majorityFourierLevelMain ↑k / ↑↑k
theorem FABL.limitingMajorityFourierWeightError_isBigO : (fun k => FABL.limitingMajorityFourierWeightError ↑k) =O[Filter.atTop] fun k => FABL.majorityFourierLevelMain ↑k / ↑↑k
Exercise 5.27(a) in literal Mathlib `O(1/k)` notation along the positive odd integers.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.limitingMajorityFourierWeightAbove_eq_tsum_odd {k : ℕ} (hk : Odd k) : FABL.limitingMajorityFourierWeightAbove k = ∑' (r : ℕ), FABL.limitingMajorityFourierWeight (k + 2 * (r + 1))
theorem FABL.limitingMajorityFourierWeightAbove_eq_tsum_odd {k : ℕ} (hk : Odd k) : FABL.limitingMajorityFourierWeightAbove k = ∑' (r : ℕ), FABL.limitingMajorityFourierWeight (k + 2 * (r + 1))
The limiting tail is exactly the sum over the subsequent odd levels.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.limitingMajorityFourierWeightAbove_mem_Icc {k : ℕ} (hk : Odd k) : FABL.limitingMajorityFourierWeightAbove k ∈ Set.Icc (FABL.majorityFourierTailMain k * (1 - 1 / ↑k)) (FABL.majorityFourierTailMain k * (1 + 1 / (3 * ↑k)))
theorem FABL.limitingMajorityFourierWeightAbove_mem_Icc {k : ℕ} (hk : Odd k) : FABL.limitingMajorityFourierWeightAbove k ∈ Set.Icc (FABL.majorityFourierTailMain k * (1 - 1 / ↑k)) (FABL.majorityFourierTailMain k * (1 + 1 / (3 * ↑k)))
Exercise 5.27(b), the limiting-tail estimate with explicit `1 ± O(1/k)` constants before passage to a varying finite arity.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.abs_limitingMajorityFourierWeightAbove_div_tailMain_sub_one_le {k : ℕ} (hk : Odd k) : |FABL.limitingMajorityFourierWeightAbove k / FABL.majorityFourierTailMain k - 1| ≤ 1 / ↑k
theorem FABL.abs_limitingMajorityFourierWeightAbove_div_tailMain_sub_one_le {k : ℕ} (hk : Odd k) : |FABL.limitingMajorityFourierWeightAbove k / FABL.majorityFourierTailMain k - 1| ≤ 1 / ↑k
Exercise 5.27(b): the limiting Fourier tail has relative error at most `1/k`.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.limitingMajorityFourierWeightAbove_relativeError_isBigO : (fun k => FABL.limitingMajorityFourierWeightAbove ↑k / FABL.majorityFourierTailMain ↑k - 1) =O[Filter.atTop] fun k => 1 / ↑↑k
theorem FABL.limitingMajorityFourierWeightAbove_relativeError_isBigO : (fun k => FABL.limitingMajorityFourierWeightAbove ↑k / FABL.majorityFourierTailMain ↑k - 1) =O[Filter.atTop] fun k => 1 / ↑↑k
Exercise 5.27(b), limiting-tail form in literal Mathlib asymptotic notation.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.abs_fourierWeightAtLevel_majority_div_levelMain_sub_one_le {n k : ℕ} (hn : Odd n) (hk : Odd k) (hnk : 2 * k ^ 2 ≤ n) : |FABL.fourierWeightAtLevel k (FABL.majority n).toReal / FABL.majorityFourierLevelMain k - 1| ≤ 3 / ↑k
theorem FABL.abs_fourierWeightAtLevel_majority_div_levelMain_sub_one_le {n k : ℕ} (hn : Odd n) (hk : Odd k) (hnk : 2 * k ^ 2 ≤ n) : |FABL.fourierWeightAtLevel k (FABL.majority n).toReal / FABL.majorityFourierLevelMain k - 1| ≤ 3 / ↑k
Corollary 5.23, the finite-dimensional level estimate with an explicit relative error.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.abs_fourierWeightAbove_majority_div_tailMain_sub_one_le {n k : ℕ} (hn : Odd n) (hk : Odd k) (hnk : 2 * k ^ 2 ≤ n) : |FABL.fourierWeightAbove k (FABL.majority n).toReal / FABL.majorityFourierTailMain k - 1| ≤ 5 / ↑k
theorem FABL.abs_fourierWeightAbove_majority_div_tailMain_sub_one_le {n k : ℕ} (hn : Odd n) (hk : Odd k) (hnk : 2 * k ^ 2 ≤ n) : |FABL.fourierWeightAbove k (FABL.majority n).toReal / FABL.majorityFourierTailMain k - 1| ≤ 5 / ↑k
Corollary 5.23, the finite-dimensional tail estimate with an explicit relative error.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.majorityFourierLevel_family_relativeError_isBigO (n : { k // Odd k } → ℕ) (hnOdd : ∀ (k : { k // Odd k }), Odd (n k)) (hnQuadratic : ∀ (k : { k // Odd k }), 2 * ↑k ^ 2 ≤ n k) : (fun k => FABL.fourierWeightAtLevel (↑k) (FABL.majority (n k)).toReal / FABL.majorityFourierLevelMain ↑k - 1) =O[Filter.atTop] fun k => 1 / ↑↑k
theorem FABL.majorityFourierLevel_family_relativeError_isBigO (n : { k // Odd k } → ℕ) (hnOdd : ∀ (k : { k // Odd k }), Odd (n k)) (hnQuadratic : ∀ (k : { k // Odd k }), 2 * ↑k ^ 2 ≤ n k) : (fun k => FABL.fourierWeightAtLevel (↑k) (FABL.majority (n k)).toReal / FABL.majorityFourierLevelMain ↑k - 1) =O[Filter.atTop] fun k => 1 / ↑↑k
Corollary 5.23, the `W^k` estimate for every odd family `n(k) ≥ 2k²`, in literal Mathlib asymptotic notation.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.majorityFourierTail_family_relativeError_isBigO (n : { k // Odd k } → ℕ) (hnOdd : ∀ (k : { k // Odd k }), Odd (n k)) (hnQuadratic : ∀ (k : { k // Odd k }), 2 * ↑k ^ 2 ≤ n k) : (fun k => FABL.fourierWeightAbove (↑k) (FABL.majority (n k)).toReal / FABL.majorityFourierTailMain ↑k - 1) =O[Filter.atTop] fun k => 1 / ↑↑k
theorem FABL.majorityFourierTail_family_relativeError_isBigO (n : { k // Odd k } → ℕ) (hnOdd : ∀ (k : { k // Odd k }), Odd (n k)) (hnQuadratic : ∀ (k : { k // Odd k }), 2 * ↑k ^ 2 ≤ n k) : (fun k => FABL.fourierWeightAbove (↑k) (FABL.majority (n k)).toReal / FABL.majorityFourierTailMain ↑k - 1) =O[Filter.atTop] fun k => 1 / ↑↑k
Corollary 5.23, the `W^{>k}` estimate for every odd family `n(k) ≥ 2k²`, in literal Mathlib asymptotic notation. -
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.tendsto_limitingMajorityFourierWeightAbove_odd_zero : Filter.Tendsto (fun q => FABL.limitingMajorityFourierWeightAbove (2 * q + 1)) Filter.atTop (nhds 0)
theorem FABL.tendsto_limitingMajorityFourierWeightAbove_odd_zero : Filter.Tendsto (fun q => FABL.limitingMajorityFourierWeightAbove (2 * q + 1)) Filter.atTop (nhds 0)
The limiting odd-level tail tends to zero.
-
FABL.exists_majorityFourierConcentrationCutoff[complete] -
FABL.corollary5_23[complete]
Corollary 5.23. Let k tend to infinity through the odd positive integers,
and let n=n(k) be odd with n\ge2k^2. Then
\mathbf W^k[\operatorname{Maj}_n]
=\left(\frac2\pi\right)^{3/2}k^{-3/2}
\left(1\pm O(1/k)\right),
and
\mathbf W^{>k}[\operatorname{Maj}_n]
=\left(\frac2\pi\right)^{3/2}k^{-1/2}
\left(1\pm O(1/k)\right).
Consequently, the Fourier spectrum of \operatorname{Maj}_n is
\epsilon-concentrated up to degree
\frac8{\pi^3}\epsilon^{-2}+O_\epsilon(1).
Lean code for Corollary5.3.15●2 theorems
Associated Lean declarations
-
FABL.exists_majorityFourierConcentrationCutoff[complete]
-
FABL.corollary5_23[complete]
-
FABL.exists_majorityFourierConcentrationCutoff[complete] -
FABL.corollary5_23[complete]
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.exists_majorityFourierConcentrationCutoff {ε : ℝ} (hε : 0 < ε) : ∃ B, 0 ≤ B ∧ ∃ k, Odd k ∧ ↑k ≤ 8 / Real.pi ^ 3 * ε⁻¹ ^ 2 + B ∧ ∀ (n : ℕ), Odd n → 2 * k ^ 2 ≤ n → FABL.IsFourierSpectrumConcentratedUpTo (FABL.majority n).toReal ε ↑k
theorem FABL.exists_majorityFourierConcentrationCutoff {ε : ℝ} (hε : 0 < ε) : ∃ B, 0 ≤ B ∧ ∃ k, Odd k ∧ ↑k ≤ 8 / Real.pi ^ 3 * ε⁻¹ ^ 2 + B ∧ ∀ (n : ℕ), Odd n → 2 * k ^ 2 ≤ n → FABL.IsFourierSpectrumConcentratedUpTo (FABL.majority n).toReal ε ↑k
Corollary 5.23, the book's `8/π³ ε⁻² + Oε(1)` cutoff with all quantifiers explicit. The remainder depends only on `ε`, never on the arity.
-
theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.leancomplete
theorem FABL.corollary5_23 (n : { k // Odd k } → ℕ) (hnOdd : ∀ (k : { k // Odd k }), Odd (n k)) (hnQuadratic : ∀ (k : { k // Odd k }), 2 * ↑k ^ 2 ≤ n k) : ((fun k => FABL.fourierWeightAtLevel (↑k) (FABL.majority (n k)).toReal / FABL.majorityFourierLevelMain ↑k - 1) =O[Filter.atTop] fun k => 1 / ↑↑k) ∧ (fun k => FABL.fourierWeightAbove (↑k) (FABL.majority (n k)).toReal / FABL.majorityFourierTailMain ↑k - 1) =O[Filter.atTop] fun k => 1 / ↑↑k
theorem FABL.corollary5_23 (n : { k // Odd k } → ℕ) (hnOdd : ∀ (k : { k // Odd k }), Odd (n k)) (hnQuadratic : ∀ (k : { k // Odd k }), 2 * ↑k ^ 2 ≤ n k) : ((fun k => FABL.fourierWeightAtLevel (↑k) (FABL.majority (n k)).toReal / FABL.majorityFourierLevelMain ↑k - 1) =O[Filter.atTop] fun k => 1 / ↑↑k) ∧ (fun k => FABL.fourierWeightAbove (↑k) (FABL.majority (n k)).toReal / FABL.majorityFourierTailMain ↑k - 1) =O[Filter.atTop] fun k => 1 / ↑↑k
Corollary 5.23, collecting the two family asymptotics with their respective error terms.