Analysis of Boolean Functions in Lean

5.3. The Fourier coefficients of Majority🔗

Lemma5.3.1
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Lemma 2.1.8
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Lemma 5.3.5
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.11 theorem
  • theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.lean
    complete
    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. 
Lemma5.3.2
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Theorem 1.2.3
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1L∃∀N

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.21 theorem
  • theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.lean
    complete
    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. 
Lemma5.3.3
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0used by 1L∃∀N

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.36 declarations
  • defdefined in FABL/Chapter05/MajorityLimits.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition5.3.4
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 1.4.15
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Theorem 5.3.13
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.45 declarations
  • defdefined in FABL/Chapter05/LimitingMajorityWeights.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Lemma5.3.5
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 6
Statement dependency previews
Preview
Definition 2.1.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1L∃∀N

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.59 declarations
  • defdefined in FABL/Chapter05/FourierCoefficientsOfMajority.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    theorem FABL.noiseOperator_middleLayerIndicator_allOne_eq_product (m : )
      (ρ : ) ( : ρ  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 : ) (ρ : )
      ( : ρ  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.lean
    complete
    theorem FABL.noiseOperator_middleLayerIndicator_allOne_eq (m : ) (ρ : )
      ( : ρ  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 : ) (ρ : )
      ( : ρ  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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Theorem5.3.6
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 3
Statement dependency previews
Preview
Lemma 5.3.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 5
Reverse dependency previews
Preview
Lemma 5.3.7
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.64 theorems
  • theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Lemma5.3.7
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 1L∃∀N

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.71 theorem
  • theoremdefined in FABL/Chapter05/MajorityComplementaryWeights.lean
    complete
    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. 
Corollary5.3.8
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 2
Reverse dependency previews
Preview
Lemma 5.3.14
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.81 theorem
  • theoremdefined in FABL/Chapter05/MajorityComplementaryWeights.lean
    complete
    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. 
Lemma5.3.9
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 1L∃∀N

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.94 theorems
  • theoremdefined in FABL/Chapter05/MajorityWeightMonotonicity.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Corollary5.3.10
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 2
Reverse dependency previews
Preview
Lemma 5.3.11
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.102 theorems
  • theoremdefined in FABL/Chapter05/MajorityWeightMonotonicity.lean
    complete
    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.lean
    complete
    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. 
Lemma5.3.11
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 3
Statement dependency previews
Preview
Theorem 2.4.6
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1L∃∀N

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.116 theorems
  • theoremdefined in FABL/Chapter05/MajorityNoiseStability.lean
    complete
    theorem FABL.noiseStability_majority_next_odd_le (m : ) {ρ : }
      ( : ρ  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 : ) {ρ : } ( : ρ  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.lean
    complete
    theorem FABL.noiseStability_majority_next_odd_lt (m : ) {ρ : }
      ( : ρ  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 : ) {ρ : } ( : ρ  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.lean
    complete
    theorem FABL.noiseStability_majority_odd_antitone (ρ : )
      ( : ρ  Set.Ico 0 1) :
      Antitone fun m =>
        FABL.noiseStability ρ  (FABL.majority (2 * m + 1)).toReal
    theorem FABL.noiseStability_majority_odd_antitone
      (ρ : ) ( : ρ  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.lean
    complete
    theorem FABL.noiseStability_majority_odd_strictAnti (ρ : )
      ( : ρ  Set.Ioo 0 1) :
      StrictAnti fun m =>
        FABL.noiseStability ρ  (FABL.majority (2 * m + 1)).toReal
    theorem FABL.noiseStability_majority_odd_strictAnti
      (ρ : ) ( : ρ  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.lean
    complete
    theorem FABL.two_div_pi_mul_arcsin_le_noiseStability_majority_odd (m : )
      {ρ : } ( : ρ  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 : ) {ρ : } ( : ρ  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.lean
    complete
    theorem FABL.exists_noiseStability_majority_odd_le_arcsine_add_inv_sqrt :
       C,
        0 < C 
           (m : ) {ρ : } ( : ρ  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 : ) {ρ : }
            ( : ρ  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. 
Lemma5.3.12
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0used by 1L∃∀N

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.121 theorem
  • theoremdefined in FABL/Chapter05/FourierCoefficientsOfMajority.lean
    complete
    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. 
Theorem5.3.13
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 5
Statement dependency previews
Preview
Lemma 2.3.8
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1L∃∀N

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.137 theorems
  • theoremdefined in FABL/Chapter05/MajorityFourierWeightLimits.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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`. 
Lemma5.3.14
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 4
Statement dependency previews
Preview
Lemma 2.3.8
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1L∃∀N

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.1420 declarations
  • defdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.lean
    complete
    def FABL.majorityFourierLevelMain (k : ) : 
    def FABL.majorityFourierLevelMain (k : ) : 
    The leading term in Exercise 5.27(a). 
  • defdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    def FABL.limitingMajorityFourierWeightError (k : ) : 
    def FABL.limitingMajorityFourierWeightError
      (k : ) : 
    The nonnegative remainder in Exercise 5.27(a). 
  • theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Corollary5.3.15
Group: Chapter 5: Majority and threshold functions (107)
Group member previews
Preview
Lemma 5.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 0L∃∀N

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.152 theorems
  • theoremdefined in FABL/Chapter05/MajorityFourierTailAsymptotics.lean
    complete
    theorem FABL.exists_majorityFourierConcentrationCutoff {ε : } ( : 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
      {ε : } ( : 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.lean
    complete
    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.