5.1. Linear threshold functions and polynomial threshold functions
-
FABL.rademacherNorm[complete] -
FABL.two_mul_variance_le_totalInfluence_of_even[complete] -
FABL.rademacherNorm_even[complete] -
FABL.laplacian_rademacherNorm_le[complete] -
FABL.two_mul_variance_rademacherNorm_le_secondMoment[complete] -
FABL.khintchineKahane[complete] -
FABL.rademacherNorm_two_equal_weights_moments[complete] -
FABL.khintchineKahane_constant_le_inv_sqrt_two[complete]
Exercise 2.55 (Khintchine--Kahane Inequality). Let V be a real normed
vector space, fix w_1,\ldots,w_n\in V, and define
g(x)=\left\lVert\sum_{i=1}^n x_iw_i\right\rVert
\qquad (x\in\{-1,1\}^n).
(a) Show that the Boolean-cube Laplacian satisfies Lg\le g pointwise.
(b) Deduce 2\operatorname{Var}[g]\le\mathbb E[g^2] and hence
\mathbb E_x\left[\left\lVert\sum_{i=1}^n x_iw_i\right\rVert\right]
\ge \frac1{\sqrt2}
\left(
\mathbb E_x\left[\left\lVert\sum_{i=1}^n x_iw_i\right\rVert^2\right]
\right)^{1/2}.
(c) The constant 1/\sqrt2 is optimal, even for V=\mathbb R.
Lean code for Lemma5.1.1●8 declarations
Associated Lean declarations
-
FABL.rademacherNorm[complete]
-
FABL.two_mul_variance_le_totalInfluence_of_even[complete]
-
FABL.rademacherNorm_even[complete]
-
FABL.laplacian_rademacherNorm_le[complete]
-
FABL.two_mul_variance_rademacherNorm_le_secondMoment[complete]
-
FABL.khintchineKahane[complete]
-
FABL.rademacherNorm_two_equal_weights_moments[complete]
-
FABL.khintchineKahane_constant_le_inv_sqrt_two[complete]
-
FABL.rademacherNorm[complete] -
FABL.two_mul_variance_le_totalInfluence_of_even[complete] -
FABL.rademacherNorm_even[complete] -
FABL.laplacian_rademacherNorm_le[complete] -
FABL.two_mul_variance_rademacherNorm_le_secondMoment[complete] -
FABL.khintchineKahane[complete] -
FABL.rademacherNorm_two_equal_weights_moments[complete] -
FABL.khintchineKahane_constant_le_inv_sqrt_two[complete]
-
defdefined in FABL/Chapter05/KhintchineKahane.leancomplete
def FABL.rademacherNorm.{u_1} {n : ℕ} {V : Type u_1} [NormedAddCommGroup V] [NormedSpace ℝ V] (w : Fin n → V) (x : FABL.SignCube n) : ℝ
def FABL.rademacherNorm.{u_1} {n : ℕ} {V : Type u_1} [NormedAddCommGroup V] [NormedSpace ℝ V] (w : Fin n → V) (x : FABL.SignCube n) : ℝ
The norm of a signed sum of vectors.
-
theoremdefined in FABL/Chapter05/KhintchineKahane.leancomplete
theorem FABL.two_mul_variance_le_totalInfluence_of_even {n : ℕ} (f : FABL.SignCube n → ℝ) (hf : Function.Even f) : 2 * FABL.variance f ≤ FABL.totalInfluence f
theorem FABL.two_mul_variance_le_totalInfluence_of_even {n : ℕ} (f : FABL.SignCube n → ℝ) (hf : Function.Even f) : 2 * FABL.variance f ≤ FABL.totalInfluence f
Exercise 2.28: the Poincaré inequality improves by a factor of two for even functions.
-
theoremdefined in FABL/Chapter05/KhintchineKahane.leancomplete
theorem FABL.rademacherNorm_even.{u_1} {n : ℕ} {V : Type u_1} [NormedAddCommGroup V] [NormedSpace ℝ V] (w : Fin n → V) : Function.Even (FABL.rademacherNorm w)
theorem FABL.rademacherNorm_even.{u_1} {n : ℕ} {V : Type u_1} [NormedAddCommGroup V] [NormedSpace ℝ V] (w : Fin n → V) : Function.Even (FABL.rademacherNorm w)
The norm of a signed vector sum is unchanged when all signs are negated.
-
theoremdefined in FABL/Chapter05/KhintchineKahane.leancomplete
theorem FABL.laplacian_rademacherNorm_le.{u_1} {n : ℕ} {V : Type u_1} [NormedAddCommGroup V] [NormedSpace ℝ V] (w : Fin n → V) (x : FABL.SignCube n) : FABL.laplacian (FABL.rademacherNorm w) x ≤ FABL.rademacherNorm w x
theorem FABL.laplacian_rademacherNorm_le.{u_1} {n : ℕ} {V : Type u_1} [NormedAddCommGroup V] [NormedSpace ℝ V] (w : Fin n → V) (x : FABL.SignCube n) : FABL.laplacian (FABL.rademacherNorm w) x ≤ FABL.rademacherNorm w x
Exercise 2.55(a): the Boolean-cube Laplacian of the signed-sum norm is bounded pointwise by the norm itself.
-
theoremdefined in FABL/Chapter05/KhintchineKahane.leancomplete
theorem FABL.two_mul_variance_rademacherNorm_le_secondMoment.{u_1} {n : ℕ} {V : Type u_1} [NormedAddCommGroup V] [NormedSpace ℝ V] (w : Fin n → V) : 2 * FABL.variance (FABL.rademacherNorm w) ≤ Finset.univ.expect fun x => FABL.rademacherNorm w x ^ 2
theorem FABL.two_mul_variance_rademacherNorm_le_secondMoment.{u_1} {n : ℕ} {V : Type u_1} [NormedAddCommGroup V] [NormedSpace ℝ V] (w : Fin n → V) : 2 * FABL.variance (FABL.rademacherNorm w) ≤ Finset.univ.expect fun x => FABL.rademacherNorm w x ^ 2
Exercise 2.55(b): twice the variance of the signed-sum norm is bounded by its second moment.
-
theoremdefined in FABL/Chapter05/KhintchineKahane.leancomplete
theorem FABL.khintchineKahane.{u_1} {n : ℕ} {V : Type u_1} [NormedAddCommGroup V] [NormedSpace ℝ V] (w : Fin n → V) : 1 / √2 * √(Finset.univ.expect fun x => FABL.rademacherNorm w x ^ 2) ≤ Finset.univ.expect fun x => FABL.rademacherNorm w x
theorem FABL.khintchineKahane.{u_1} {n : ℕ} {V : Type u_1} [NormedAddCommGroup V] [NormedSpace ℝ V] (w : Fin n → V) : 1 / √2 * √(Finset.univ.expect fun x => FABL.rademacherNorm w x ^ 2) ≤ Finset.univ.expect fun x => FABL.rademacherNorm w x
Exercise 2.55(b), the Khintchine--Kahane inequality with its sharp universal `1 / √2` constant.
-
theoremdefined in FABL/Chapter05/KhintchineKahane.leancomplete
theorem FABL.rademacherNorm_two_equal_weights_moments : (Finset.univ.expect fun x => FABL.rademacherNorm (fun x => 1) x) = 1 ∧ (Finset.univ.expect fun x => FABL.rademacherNorm (fun x => 1) x ^ 2) = 2
theorem FABL.rademacherNorm_two_equal_weights_moments : (Finset.univ.expect fun x => FABL.rademacherNorm (fun x => 1) x) = 1 ∧ (Finset.univ.expect fun x => FABL.rademacherNorm (fun x => 1) x ^ 2) = 2
Exercise 2.55(c): two equal real weights have first absolute moment one and second moment two.
-
theoremdefined in FABL/Chapter05/KhintchineKahane.leancomplete
theorem FABL.khintchineKahane_constant_le_inv_sqrt_two (c : ℝ) (h : c * √(Finset.univ.expect fun x => FABL.rademacherNorm (fun x => 1) x ^ 2) ≤ Finset.univ.expect fun x => FABL.rademacherNorm (fun x => 1) x) : c ≤ 1 / √2
theorem FABL.khintchineKahane_constant_le_inv_sqrt_two (c : ℝ) (h : c * √(Finset.univ.expect fun x => FABL.rademacherNorm (fun x => 1) x ^ 2) ≤ Finset.univ.expect fun x => FABL.rademacherNorm (fun x => 1) x) : c ≤ 1 / √2
Exercise 2.55(c): the two-equal-weight example forces every universal Khintchine--Kahane constant to be at most `1 / √2`.
-
FABL.abs_fourierCoeff_le_uniformLpNorm_one[complete] -
FABL.abs_apply_le_fourierOneNorm[complete]
Exercise 3.9 (the endpoint Hausdorff--Young inequalities). For every
f:\{-1,1\}^n\to\mathbb R,
\lVert\widehat f\rVert_\infty\le\lVert f\rVert_1,
\qquad
\lVert f\rVert_\infty\le\lVert\widehat f\rVert_1.
Lean code for Lemma5.1.2●2 theorems
Associated Lean declarations
-
FABL.abs_fourierCoeff_le_uniformLpNorm_one[complete]
-
FABL.abs_apply_le_fourierOneNorm[complete]
-
FABL.abs_fourierCoeff_le_uniformLpNorm_one[complete] -
FABL.abs_apply_le_fourierOneNorm[complete]
-
theoremdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
theorem FABL.abs_fourierCoeff_le_uniformLpNorm_one {n : ℕ} (f : FABL.SignCube n → ℝ) (S : Finset (Fin n)) : |FABL.fourierCoeff f S| ≤ FABL.uniformLpNorm 1 f
theorem FABL.abs_fourierCoeff_le_uniformLpNorm_one {n : ℕ} (f : FABL.SignCube n → ℝ) (S : Finset (Fin n)) : |FABL.fourierCoeff f S| ≤ FABL.uniformLpNorm 1 f
O'Donnell, Exercise 3.9: every Fourier coefficient is bounded by the uniform `L¹` norm.
-
theoremdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
theorem FABL.abs_apply_le_fourierOneNorm {n : ℕ} (f : FABL.SignCube n → ℝ) (x : FABL.SignCube n) : |f x| ≤ FABL.fourierOneNorm f
theorem FABL.abs_apply_le_fourierOneNorm {n : ℕ} (f : FABL.SignCube n → ℝ) (x : FABL.SignCube n) : |f x| ≤ FABL.fourierOneNorm f
O'Donnell, Exercise 3.9: the Fourier `1`-norm bounds every value of the function.
-
FABL.f₂CubeBlockEquiv[complete] -
FABL.joinF₂CubeBlocks[complete] -
FABL.f₂CubeBlockEquiv_joinF₂CubeBlocks[complete] -
FABL.joinF₂CubeBlocks_castAdd[complete] -
FABL.joinF₂CubeBlocks_natAdd[complete] -
FABL.joinF₂CubeBlocks_addNat[complete] -
FABL.innerProductModTwoBit[complete] -
FABL.innerProductModTwo[complete] -
FABL.innerProductModTwoBoolean[complete] -
FABL.innerProductModTwoBit_joinF₂CubeBlocks[complete] -
FABL.f₂DotProduct_joinF₂CubeBlocks[complete] -
FABL.innerProductModTwo_joinF₂CubeBlocks[complete] -
FABL.vectorWalshCharacter_joinF₂CubeBlocks[complete] -
FABL.vectorFourierCoeff_innerProductModTwo_joinF₂CubeBlocks[complete] -
FABL.abs_vectorFourierCoeff_innerProductModTwo[complete] -
FABL.innerProductModTwoBoolean_toReal[complete] -
FABL.abs_fourierCoeff_innerProductModTwoBoolean[complete]
Exercise 1.1(g) (inner product modulo 2). Define
\operatorname{IP}_{2n}(x,y)=(-1)^{x\cdot y},
\qquad x,y\in\mathbb F_2^n.
For a,b\in\mathbb F_2^n, its Fourier coefficients are
\widehat{\operatorname{IP}_{2n}}(a,b)
=2^{-n}(-1)^{a\cdot b}.
In particular every Fourier coefficient has absolute value 2^{-n}.
Lean code for Lemma5.1.3●17 declarations
Associated Lean declarations
-
FABL.f₂CubeBlockEquiv[complete]
-
FABL.joinF₂CubeBlocks[complete]
-
FABL.f₂CubeBlockEquiv_joinF₂CubeBlocks[complete]
-
FABL.joinF₂CubeBlocks_castAdd[complete]
-
FABL.joinF₂CubeBlocks_natAdd[complete]
-
FABL.joinF₂CubeBlocks_addNat[complete]
-
FABL.innerProductModTwoBit[complete]
-
FABL.innerProductModTwo[complete]
-
FABL.innerProductModTwoBoolean[complete]
-
FABL.innerProductModTwoBit_joinF₂CubeBlocks[complete]
-
FABL.f₂DotProduct_joinF₂CubeBlocks[complete]
-
FABL.innerProductModTwo_joinF₂CubeBlocks[complete]
-
FABL.vectorWalshCharacter_joinF₂CubeBlocks[complete]
-
FABL.vectorFourierCoeff_innerProductModTwo_joinF₂CubeBlocks[complete]
-
FABL.abs_vectorFourierCoeff_innerProductModTwo[complete]
-
FABL.innerProductModTwoBoolean_toReal[complete]
-
FABL.abs_fourierCoeff_innerProductModTwoBoolean[complete]
-
FABL.f₂CubeBlockEquiv[complete] -
FABL.joinF₂CubeBlocks[complete] -
FABL.f₂CubeBlockEquiv_joinF₂CubeBlocks[complete] -
FABL.joinF₂CubeBlocks_castAdd[complete] -
FABL.joinF₂CubeBlocks_natAdd[complete] -
FABL.joinF₂CubeBlocks_addNat[complete] -
FABL.innerProductModTwoBit[complete] -
FABL.innerProductModTwo[complete] -
FABL.innerProductModTwoBoolean[complete] -
FABL.innerProductModTwoBit_joinF₂CubeBlocks[complete] -
FABL.f₂DotProduct_joinF₂CubeBlocks[complete] -
FABL.innerProductModTwo_joinF₂CubeBlocks[complete] -
FABL.vectorWalshCharacter_joinF₂CubeBlocks[complete] -
FABL.vectorFourierCoeff_innerProductModTwo_joinF₂CubeBlocks[complete] -
FABL.abs_vectorFourierCoeff_innerProductModTwo[complete] -
FABL.innerProductModTwoBoolean_toReal[complete] -
FABL.abs_fourierCoeff_innerProductModTwoBoolean[complete]
-
defdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
def FABL.f₂CubeBlockEquiv (n : ℕ) : FABL.F₂Cube (n + n) ≃ FABL.F₂Cube n × FABL.F₂Cube n
def FABL.f₂CubeBlockEquiv (n : ℕ) : FABL.F₂Cube (n + n) ≃ FABL.F₂Cube n × FABL.F₂Cube n
Split a flat binary cube into its first and second coordinate blocks.
-
defdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
def FABL.joinF₂CubeBlocks {n : ℕ} (x y : FABL.F₂Cube n) : FABL.F₂Cube (n + n)
def FABL.joinF₂CubeBlocks {n : ℕ} (x y : FABL.F₂Cube n) : FABL.F₂Cube (n + n)
Join two binary `n`-blocks into the flat binary cube of dimension `n + n`.
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.f₂CubeBlockEquiv_joinF₂CubeBlocks {n : ℕ} (x y : FABL.F₂Cube n) : (FABL.f₂CubeBlockEquiv n) (FABL.joinF₂CubeBlocks x y) = (x, y)
theorem FABL.f₂CubeBlockEquiv_joinF₂CubeBlocks {n : ℕ} (x y : FABL.F₂Cube n) : (FABL.f₂CubeBlockEquiv n) (FABL.joinF₂CubeBlocks x y) = (x, y)
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.joinF₂CubeBlocks_castAdd {n : ℕ} (x y : FABL.F₂Cube n) (i : Fin n) : FABL.joinF₂CubeBlocks x y (Fin.castAdd n i) = x i
theorem FABL.joinF₂CubeBlocks_castAdd {n : ℕ} (x y : FABL.F₂Cube n) (i : Fin n) : FABL.joinF₂CubeBlocks x y (Fin.castAdd n i) = x i
The first block of a joined binary cube is the first input block.
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.joinF₂CubeBlocks_natAdd {n : ℕ} (x y : FABL.F₂Cube n) (i : Fin n) : FABL.joinF₂CubeBlocks x y (Fin.natAdd n i) = y i
theorem FABL.joinF₂CubeBlocks_natAdd {n : ℕ} (x y : FABL.F₂Cube n) (i : Fin n) : FABL.joinF₂CubeBlocks x y (Fin.natAdd n i) = y i
The second block of a joined binary cube is the second input block.
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.joinF₂CubeBlocks_addNat {n : ℕ} (x y : FABL.F₂Cube n) (i : Fin n) : FABL.joinF₂CubeBlocks x y (i.addNat n) = y i
theorem FABL.joinF₂CubeBlocks_addNat {n : ℕ} (x y : FABL.F₂Cube n) (i : Fin n) : FABL.joinF₂CubeBlocks x y (i.addNat n) = y i
-
defdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
def FABL.innerProductModTwoBit {n : ℕ} (z : FABL.F₂Cube (n + n)) : FABL.𝔽₂
def FABL.innerProductModTwoBit {n : ℕ} (z : FABL.F₂Cube (n + n)) : FABL.𝔽₂
The binary-valued inner product modulo two on the flat `2n`-dimensional cube.
-
defdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
def FABL.innerProductModTwo (n : ℕ) : FABL.F₂Cube (n + n) → ℝ
def FABL.innerProductModTwo (n : ℕ) : FABL.F₂Cube (n + n) → ℝ
O'Donnell, Exercise 1.1(g): `IP_{2n}(x,y) = (-1)^(x · y)`, as a real-valued function on the flat binary cube. -
defdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
def FABL.innerProductModTwoBoolean (n : ℕ) : FABL.BooleanFunction (n + n)
def FABL.innerProductModTwoBoolean (n : ℕ) : FABL.BooleanFunction (n + n)
The sign-valued form of `IP_{2n}` on the sign cube, used for polynomial threshold representations. -
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.innerProductModTwoBit_joinF₂CubeBlocks {n : ℕ} (x y : FABL.F₂Cube n) : FABL.innerProductModTwoBit (FABL.joinF₂CubeBlocks x y) = FABL.f₂DotProduct x y
theorem FABL.innerProductModTwoBit_joinF₂CubeBlocks {n : ℕ} (x y : FABL.F₂Cube n) : FABL.innerProductModTwoBit (FABL.joinF₂CubeBlocks x y) = FABL.f₂DotProduct x y
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.f₂DotProduct_joinF₂CubeBlocks {n : ℕ} (a b x y : FABL.F₂Cube n) : FABL.f₂DotProduct (FABL.joinF₂CubeBlocks a b) (FABL.joinF₂CubeBlocks x y) = FABL.f₂DotProduct a x + FABL.f₂DotProduct b y
theorem FABL.f₂DotProduct_joinF₂CubeBlocks {n : ℕ} (a b x y : FABL.F₂Cube n) : FABL.f₂DotProduct (FABL.joinF₂CubeBlocks a b) (FABL.joinF₂CubeBlocks x y) = FABL.f₂DotProduct a x + FABL.f₂DotProduct b y
Dot products on the joined cube split as the sum of the two block dot products.
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.innerProductModTwo_joinF₂CubeBlocks {n : ℕ} (x y : FABL.F₂Cube n) : FABL.innerProductModTwo n (FABL.joinF₂CubeBlocks x y) = FABL.binarySign (FABL.f₂DotProduct x y)
theorem FABL.innerProductModTwo_joinF₂CubeBlocks {n : ℕ} (x y : FABL.F₂Cube n) : FABL.innerProductModTwo n (FABL.joinF₂CubeBlocks x y) = FABL.binarySign (FABL.f₂DotProduct x y)
The real-valued inner-product function has its defining formula on two joined blocks.
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.vectorWalshCharacter_joinF₂CubeBlocks {n : ℕ} (a b x y : FABL.F₂Cube n) : (FABL.vectorWalshCharacter (FABL.joinF₂CubeBlocks a b)) (FABL.joinF₂CubeBlocks x y) = (FABL.vectorWalshCharacter a) x * (FABL.vectorWalshCharacter b) y
theorem FABL.vectorWalshCharacter_joinF₂CubeBlocks {n : ℕ} (a b x y : FABL.F₂Cube n) : (FABL.vectorWalshCharacter (FABL.joinF₂CubeBlocks a b)) (FABL.joinF₂CubeBlocks x y) = (FABL.vectorWalshCharacter a) x * (FABL.vectorWalshCharacter b) y
A vector Walsh character on the joined cube factors over the two blocks.
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.vectorFourierCoeff_innerProductModTwo_joinF₂CubeBlocks {n : ℕ} (a b : FABL.F₂Cube n) : FABL.vectorFourierCoeff (FABL.innerProductModTwo n) (FABL.joinF₂CubeBlocks a b) = (2 ^ n)⁻¹ * FABL.binarySign (FABL.f₂DotProduct a b)
theorem FABL.vectorFourierCoeff_innerProductModTwo_joinF₂CubeBlocks {n : ℕ} (a b : FABL.F₂Cube n) : FABL.vectorFourierCoeff (FABL.innerProductModTwo n) (FABL.joinF₂CubeBlocks a b) = (2 ^ n)⁻¹ * FABL.binarySign (FABL.f₂DotProduct a b)
O'Donnell, Exercise 1.1(g): the coefficient at frequency `(a,b)` is `2⁻ⁿ (-1)^(a · b)`.
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.abs_vectorFourierCoeff_innerProductModTwo {n : ℕ} (γ : FABL.F₂Cube (n + n)) : |FABL.vectorFourierCoeff (FABL.innerProductModTwo n) γ| = (2 ^ n)⁻¹
theorem FABL.abs_vectorFourierCoeff_innerProductModTwo {n : ℕ} (γ : FABL.F₂Cube (n + n)) : |FABL.vectorFourierCoeff (FABL.innerProductModTwo n) γ| = (2 ^ n)⁻¹
O'Donnell, Exercise 1.1(g): every Fourier coefficient of `IP_{2n}` has absolute value `2⁻ⁿ`. -
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.innerProductModTwoBoolean_toReal (n : ℕ) : (FABL.innerProductModTwoBoolean n).toReal = FABL.binaryFunctionOnSignCube (FABL.innerProductModTwo n)
theorem FABL.innerProductModTwoBoolean_toReal (n : ℕ) : (FABL.innerProductModTwoBoolean n).toReal = FABL.binaryFunctionOnSignCube (FABL.innerProductModTwo n)
The sign-cube encoding of `IP_{2n}` has the same real-valued function as the canonical binary-to-sign representation bridge. -
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.abs_fourierCoeff_innerProductModTwoBoolean {n : ℕ} (S : Finset (Fin (n + n))) : |FABL.fourierCoeff (FABL.innerProductModTwoBoolean n).toReal S| = (2 ^ n)⁻¹
theorem FABL.abs_fourierCoeff_innerProductModTwoBoolean {n : ℕ} (S : Finset (Fin (n + n))) : |FABL.fourierCoeff (FABL.innerProductModTwoBoolean n).toReal S| = (2 ^ n)⁻¹
Every sign-cube Fourier coefficient of the Boolean inner-product function has absolute value `2⁻ⁿ`.
-
FABL.IsPolynomialThresholdRepresentation[complete] -
FABL.IsPolynomialThreshold[complete]
Definition 5.4. A function f:\{-1,1\}^n\to\{-1,1\} is a
polynomial threshold function (PTF) of degree at most k if there is a
real polynomial p:\{-1,1\}^n\to\mathbb R of degree at most k such that
f(x)=\operatorname{sgn}(p(x))
for every x\in\{-1,1\}^n.
Lean code for Definition5.1.4●2 definitions
Associated Lean declarations
-
FABL.IsPolynomialThresholdRepresentation[complete]
-
FABL.IsPolynomialThreshold[complete]
-
FABL.IsPolynomialThresholdRepresentation[complete] -
FABL.IsPolynomialThreshold[complete]
-
defdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
def FABL.IsPolynomialThresholdRepresentation {n : ℕ} (f : FABL.BooleanFunction n) (p : FABL.SignCube n → ℝ) : Prop
def FABL.IsPolynomialThresholdRepresentation {n : ℕ} (f : FABL.BooleanFunction n) (p : FABL.SignCube n → ℝ) : Prop
O'Donnell, Definition 5.4: `p` represents `f` as a polynomial threshold function.
-
defdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
def FABL.IsPolynomialThreshold {n : ℕ} (f : FABL.BooleanFunction n) (k : ℕ) : Prop
def FABL.IsPolynomialThreshold {n : ℕ} (f : FABL.BooleanFunction n) (k : ℕ) : Prop
O'Donnell, Definition 5.4: `f` has a polynomial threshold representation of degree at most `k`.
Exercise 5.1 (integral threshold representations).
(a) Every linear threshold function has a representation
f(x)=\operatorname{sgn}(a_0+a_1x_1+\cdots+a_nx_n)
with a_0,a_1,\ldots,a_n\in\mathbb Z. The representation may be chosen so
that the affine form is nonzero at every point of the discrete cube.
(b) More generally, every degree-d polynomial threshold function has a
degree-d representation whose polynomial coefficients are all integers;
again the representing polynomial may be chosen nonzero on the discrete
cube.
Lean code for Lemma5.1.5●2 theorems
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/IntegralThresholdRepresentations.leancomplete
theorem FABL.exists_integer_linearThresholdRepresentation {n : ℕ} (f : FABL.BooleanFunction n) (hf : FABL.IsLinearThreshold f) : ∃ a₀ a, (∀ (x : FABL.SignCube n), f x = FABL.thresholdSign (↑a₀ + ∑ i, ↑(a i) * FABL.signValue (x i))) ∧ ∀ (x : FABL.SignCube n), ↑a₀ + ∑ i, ↑(a i) * FABL.signValue (x i) ≠ 0
theorem FABL.exists_integer_linearThresholdRepresentation {n : ℕ} (f : FABL.BooleanFunction n) (hf : FABL.IsLinearThreshold f) : ∃ a₀ a, (∀ (x : FABL.SignCube n), f x = FABL.thresholdSign (↑a₀ + ∑ i, ↑(a i) * FABL.signValue (x i))) ∧ ∀ (x : FABL.SignCube n), ↑a₀ + ∑ i, ↑(a i) * FABL.signValue (x i) ≠ 0
O'Donnell, Exercise 5.1(a): every linear threshold function has an integer affine representation whose affine form is nonzero at every point of the discrete cube.
-
theoremdefined in FABL/Chapter05/IntegralThresholdRepresentations.leancomplete
theorem FABL.exists_integer_polynomialThresholdRepresentation {n : ℕ} (f : FABL.BooleanFunction n) (d : ℕ) (hf : FABL.IsPolynomialThreshold f d) : ∃ p, FABL.IsPolynomialThresholdRepresentation f p ∧ FABL.fourierDegree p ≤ d ∧ (∀ (S : Finset (Fin n)), ∃ z, FABL.fourierCoeff p S = ↑z) ∧ ∀ (x : FABL.SignCube n), p x ≠ 0
theorem FABL.exists_integer_polynomialThresholdRepresentation {n : ℕ} (f : FABL.BooleanFunction n) (d : ℕ) (hf : FABL.IsPolynomialThreshold f d) : ∃ p, FABL.IsPolynomialThresholdRepresentation f p ∧ FABL.fourierDegree p ≤ d ∧ (∀ (S : Finset (Fin n)), ∃ z, FABL.fourierCoeff p S = ↑z) ∧ ∀ (x : FABL.SignCube n), p x ≠ 0
O'Donnell, Exercise 5.1(b): every degree-at-most-`d` polynomial threshold function has an integer-coefficient multilinear representation of degree at most `d` which is nonzero at every point of the discrete cube.
Theorem 5.1 (Chow's Theorem). Let
f:\{-1,1\}^n\to\{-1,1\} be a linear threshold function and let
g:\{-1,1\}^n\to\{-1,1\} be arbitrary. If
\widehat g(S)=\widehat f(S)
\qquad\text{for every }S\subseteq[n]\text{ with }|S|\le1,
then g=f.
Lean code for Theorem5.1.6●1 theorem
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/ChowTheorem.leancomplete
theorem FABL.eq_of_isLinearThreshold_of_fourierCoeff_eq {n : ℕ} (f g : FABL.BooleanFunction n) (hf : FABL.IsLinearThreshold f) (hcoeff : ∀ (S : Finset (Fin n)), S.card ≤ 1 → FABL.fourierCoeff g.toReal S = FABL.fourierCoeff f.toReal S) : g = f
theorem FABL.eq_of_isLinearThreshold_of_fourierCoeff_eq {n : ℕ} (f g : FABL.BooleanFunction n) (hf : FABL.IsLinearThreshold f) (hcoeff : ∀ (S : Finset (Fin n)), S.card ≤ 1 → FABL.fourierCoeff g.toReal S = FABL.fourierCoeff f.toReal S) : g = f
O'Donnell, Theorem 5.1 (Chow's theorem): a linear threshold function is determined by its degree-zero and degree-one Fourier coefficients.
-
FABL.affineLinearForm[complete] -
FABL.homogenizedAffineLinearForm[complete] -
FABL.homogenizedAffineLinearForm_fin_cons[complete] -
FABL.uniformLpNorm_one_homogenizedAffineLinearForm[complete] -
FABL.uniformLpNorm_two_sq_homogenizedAffineLinearForm[complete] -
FABL.uniformLpNorm_two_homogenizedAffineLinearForm[complete] -
FABL.affineKhintchineKahane[complete]
Exercise 5.5 (homogenizing an affine form). Let
\ell(x)=a_0+a_1x_1+\cdots+a_nx_n
on \{-1,1\}^n, and define
\widetilde\ell(x_0,x_1,\ldots,x_n)
=a_0x_0+a_1x_1+\cdots+a_nx_n
on \{-1,1\}^{n+1}.
(a) Show that
\lVert\widetilde\ell\rVert_1=\lVert\ell\rVert_1 and
\lVert\widetilde\ell\rVert_2^2=\lVert\ell\rVert_2^2.
(b) Use this homogenization and the Khintchine--Kahane Inequality to complete the proof of Theorem 5.2 for affine, rather than homogeneous, linear forms.
Lean code for Lemma5.1.7●7 declarations
Associated Lean declarations
-
FABL.affineLinearForm[complete]
-
FABL.homogenizedAffineLinearForm[complete]
-
FABL.homogenizedAffineLinearForm_fin_cons[complete]
-
FABL.uniformLpNorm_one_homogenizedAffineLinearForm[complete]
-
FABL.uniformLpNorm_two_sq_homogenizedAffineLinearForm[complete]
-
FABL.uniformLpNorm_two_homogenizedAffineLinearForm[complete]
-
FABL.affineKhintchineKahane[complete]
-
FABL.affineLinearForm[complete] -
FABL.homogenizedAffineLinearForm[complete] -
FABL.homogenizedAffineLinearForm_fin_cons[complete] -
FABL.uniformLpNorm_one_homogenizedAffineLinearForm[complete] -
FABL.uniformLpNorm_two_sq_homogenizedAffineLinearForm[complete] -
FABL.uniformLpNorm_two_homogenizedAffineLinearForm[complete] -
FABL.affineKhintchineKahane[complete]
-
defdefined in FABL/Chapter05/LinearThresholdLevelOne.leancomplete
def FABL.affineLinearForm {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) (x : FABL.SignCube n) : ℝ
def FABL.affineLinearForm {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) (x : FABL.SignCube n) : ℝ
An affine linear form on the sign cube.
-
defdefined in FABL/Chapter05/LinearThresholdLevelOne.leancomplete
def FABL.homogenizedAffineLinearForm {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : FABL.SignCube (n + 1) → ℝ
def FABL.homogenizedAffineLinearForm {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : FABL.SignCube (n + 1) → ℝ
The homogeneous form obtained by adjoining the affine constant as a new signed coordinate.
-
theoremdefined in FABL/Chapter05/LinearThresholdLevelOne.leancomplete
theorem FABL.homogenizedAffineLinearForm_fin_cons {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) (b : FABL.Sign) (x : FABL.SignCube n) : FABL.homogenizedAffineLinearForm a₀ a (Fin.cons b x) = a₀ * FABL.signValue b + FABL.linearForm a x
theorem FABL.homogenizedAffineLinearForm_fin_cons {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) (b : FABL.Sign) (x : FABL.SignCube n) : FABL.homogenizedAffineLinearForm a₀ a (Fin.cons b x) = a₀ * FABL.signValue b + FABL.linearForm a x
-
theoremdefined in FABL/Chapter05/LinearThresholdLevelOne.leancomplete
theorem FABL.uniformLpNorm_one_homogenizedAffineLinearForm {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : FABL.uniformLpNorm 1 (FABL.homogenizedAffineLinearForm a₀ a) = FABL.uniformLpNorm 1 (FABL.affineLinearForm a₀ a)
theorem FABL.uniformLpNorm_one_homogenizedAffineLinearForm {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : FABL.uniformLpNorm 1 (FABL.homogenizedAffineLinearForm a₀ a) = FABL.uniformLpNorm 1 (FABL.affineLinearForm a₀ a)
Exercise 5.5(a): homogenization preserves the uniform `L¹` norm.
-
theoremdefined in FABL/Chapter05/LinearThresholdLevelOne.leancomplete
theorem FABL.uniformLpNorm_two_sq_homogenizedAffineLinearForm {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : FABL.uniformLpNorm 2 (FABL.homogenizedAffineLinearForm a₀ a) ^ 2 = FABL.uniformLpNorm 2 (FABL.affineLinearForm a₀ a) ^ 2
theorem FABL.uniformLpNorm_two_sq_homogenizedAffineLinearForm {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : FABL.uniformLpNorm 2 (FABL.homogenizedAffineLinearForm a₀ a) ^ 2 = FABL.uniformLpNorm 2 (FABL.affineLinearForm a₀ a) ^ 2
Exercise 5.5(a): homogenization preserves the square of the uniform `L²` norm.
-
theoremdefined in FABL/Chapter05/LinearThresholdLevelOne.leancomplete
theorem FABL.uniformLpNorm_two_homogenizedAffineLinearForm {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : FABL.uniformLpNorm 2 (FABL.homogenizedAffineLinearForm a₀ a) = FABL.uniformLpNorm 2 (FABL.affineLinearForm a₀ a)
theorem FABL.uniformLpNorm_two_homogenizedAffineLinearForm {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : FABL.uniformLpNorm 2 (FABL.homogenizedAffineLinearForm a₀ a) = FABL.uniformLpNorm 2 (FABL.affineLinearForm a₀ a)
Exercise 5.5(a): homogenization preserves the uniform `L²` norm.
-
theoremdefined in FABL/Chapter05/LinearThresholdLevelOne.leancomplete
theorem FABL.affineKhintchineKahane {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : 1 / √2 * FABL.uniformLpNorm 2 (FABL.affineLinearForm a₀ a) ≤ FABL.uniformLpNorm 1 (FABL.affineLinearForm a₀ a)
theorem FABL.affineKhintchineKahane {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : 1 / √2 * FABL.uniformLpNorm 2 (FABL.affineLinearForm a₀ a) ≤ FABL.uniformLpNorm 1 (FABL.affineLinearForm a₀ a)
Exercise 5.5(b): the Khintchine--Kahane lower bound extends from homogeneous linear forms to affine linear forms by homogenization.
Theorem 5.2. If f:\{-1,1\}^n\to\{-1,1\} is a linear threshold
function, then
\mathbf W^{\le1}[f]\ge\frac12.
Lean code for Theorem5.1.8●2 theorems
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/LinearThresholdLevelOne.leancomplete
theorem FABL.fourierDegree_affineLinearForm_le_one {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : FABL.fourierDegree (FABL.affineLinearForm a₀ a) ≤ 1
theorem FABL.fourierDegree_affineLinearForm_le_one {n : ℕ} (a₀ : ℝ) (a : Fin n → ℝ) : FABL.fourierDegree (FABL.affineLinearForm a₀ a) ≤ 1
An affine linear form has Fourier degree at most one.
-
theoremdefined in FABL/Chapter05/LinearThresholdLevelOne.leancomplete
theorem FABL.one_half_le_fourierWeightAtMost_one_of_isLinearThreshold {n : ℕ} (f : FABL.BooleanFunction n) (hf : FABL.IsLinearThreshold f) : 1 / 2 ≤ FABL.fourierWeightAtMost 1 f.toReal
theorem FABL.one_half_le_fourierWeightAtMost_one_of_isLinearThreshold {n : ℕ} (f : FABL.BooleanFunction n) (hf : FABL.IsLinearThreshold f) : 1 / 2 ≤ FABL.fourierWeightAtMost 1 f.toReal
O'Donnell, Theorem 5.2: a Boolean linear threshold function has at least one half of its Fourier weight on degrees zero and one.
Conjecture 5.3. Every linear threshold function
f:\{-1,1\}^n\to\{-1,1\} satisfies
\mathbf W^{\le1}[f]\ge\frac2\pi.
This conjecture remains open.
-
FABL.fourBitEquality[complete] -
FABL.fourBitEqualityPolynomial[complete] -
FABL.fourBitEquality_polynomialThresholdRepresentation[complete] -
FABL.fourierDegree_fourBitEqualityPolynomial_le[complete] -
FABL.fourBitEquality_isPolynomialThreshold[complete] -
FABL.polynomialSparsity_fourBitEqualityPolynomial[complete]
Example 5.5. Let f:\{-1,1\}^4\to\{-1,1\} be the four-bit equality
function, equal to 1 exactly when all four input bits are equal. Then f
is a degree-2 polynomial threshold function, since
f(x)=\operatorname{sgn}\bigl(
-3+x_1x_2+x_1x_3+x_1x_4+x_2x_3+x_2x_4+x_3x_4
\bigr).
This displayed representation has sparsity 7 in the sense of
Definition 5.7.
Lean code for Lemma5.1.10●6 declarations
Associated Lean declarations
-
FABL.fourBitEquality[complete]
-
FABL.fourBitEqualityPolynomial[complete]
-
FABL.fourBitEquality_polynomialThresholdRepresentation[complete]
-
FABL.fourierDegree_fourBitEqualityPolynomial_le[complete]
-
FABL.fourBitEquality_isPolynomialThreshold[complete]
-
FABL.polynomialSparsity_fourBitEqualityPolynomial[complete]
-
FABL.fourBitEquality[complete] -
FABL.fourBitEqualityPolynomial[complete] -
FABL.fourBitEquality_polynomialThresholdRepresentation[complete] -
FABL.fourierDegree_fourBitEqualityPolynomial_le[complete] -
FABL.fourBitEquality_isPolynomialThreshold[complete] -
FABL.polynomialSparsity_fourBitEqualityPolynomial[complete]
-
defdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
def FABL.fourBitEquality : FABL.BooleanFunction 4
def FABL.fourBitEquality : FABL.BooleanFunction 4
The four-bit equality function from Example 5.5.
-
defdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
def FABL.fourBitEqualityPolynomial (x : FABL.SignCube 4) : ℝ
def FABL.fourBitEqualityPolynomial (x : FABL.SignCube 4) : ℝ
The explicit quadratic polynomial from Example 5.5.
-
theoremdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
theorem FABL.fourBitEquality_polynomialThresholdRepresentation : FABL.IsPolynomialThresholdRepresentation FABL.fourBitEquality FABL.fourBitEqualityPolynomial
theorem FABL.fourBitEquality_polynomialThresholdRepresentation : FABL.IsPolynomialThresholdRepresentation FABL.fourBitEquality FABL.fourBitEqualityPolynomial
Example 5.5: the displayed quadratic polynomial represents the four-bit equality function.
-
theoremdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
theorem FABL.fourierDegree_fourBitEqualityPolynomial_le : FABL.fourierDegree FABL.fourBitEqualityPolynomial ≤ 2
theorem FABL.fourierDegree_fourBitEqualityPolynomial_le : FABL.fourierDegree FABL.fourBitEqualityPolynomial ≤ 2
The polynomial displayed in Example 5.5 has Fourier degree at most two.
-
theoremdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
theorem FABL.fourBitEquality_isPolynomialThreshold : FABL.IsPolynomialThreshold FABL.fourBitEquality 2
theorem FABL.fourBitEquality_isPolynomialThreshold : FABL.IsPolynomialThreshold FABL.fourBitEquality 2
Example 5.5: four-bit equality is a polynomial threshold function of degree at most two.
-
theoremdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
theorem FABL.polynomialSparsity_fourBitEqualityPolynomial : FABL.polynomialSparsity FABL.fourBitEqualityPolynomial = 7
theorem FABL.polynomialSparsity_fourBitEqualityPolynomial : FABL.polynomialSparsity FABL.fourBitEqualityPolynomial = 7
Example 5.5: the displayed polynomial has exactly seven nonzero monomial terms.
Proposition 5.6. Let f:\{-1,1\}^n\to\{-1,1\} and
\delta\in(0,1/2]. Then f is
3\operatorname{NS}_\delta[f]-close to a polynomial threshold function of
degree at most 1/\delta.
Lean code for Proposition5.1.11●1 theorem
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
theorem FABL.exists_polynomialThreshold_relativeHammingDist_le_three_mul_noiseSensitivity {n : ℕ} (f : FABL.BooleanFunction n) {δ : ℝ} (hδpos : 0 < δ) (hδhalf : δ ≤ 1 / 2) : ∃ g, FABL.IsPolynomialThreshold g ⌊1 / δ⌋₊ ∧ ↑⌊1 / δ⌋₊ ≤ 1 / δ ∧ FABL.relativeHammingDist f g ≤ 3 * FABL.noiseSensitivity δ ⋯ f
theorem FABL.exists_polynomialThreshold_relativeHammingDist_le_three_mul_noiseSensitivity {n : ℕ} (f : FABL.BooleanFunction n) {δ : ℝ} (hδpos : 0 < δ) (hδhalf : δ ≤ 1 / 2) : ∃ g, FABL.IsPolynomialThreshold g ⌊1 / δ⌋₊ ∧ ↑⌊1 / δ⌋₊ ≤ 1 / δ ∧ FABL.relativeHammingDist f g ≤ 3 * FABL.noiseSensitivity δ ⋯ f
O'Donnell, Proposition 5.6: a Boolean function is within three times its noise sensitivity of a polynomial threshold function whose natural degree cutoff is `⌊1 / δ⌋₊`. The displayed cutoff is no larger than the book's real cutoff `1 / δ`; in particular, no ceiling enlargement of the stated degree bound is used.
Definition 5.7. A polynomial threshold representation
f(x)=\operatorname{sgn}(p(x)) has sparsity at most s if p is a
multilinear polynomial containing at most s nonzero monomial terms.
Lean code for Definition5.1.12●1 definition
Associated Lean declarations
-
FABL.polynomialSparsity[complete]
-
FABL.polynomialSparsity[complete]
-
defdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
def FABL.polynomialSparsity {n : ℕ} (p : FABL.SignCube n → ℝ) : ℕ
def FABL.polynomialSparsity {n : ℕ} (p : FABL.SignCube n → ℝ) : ℕ
O'Donnell, Definition 5.7: the number of nonzero monomial terms in the unique multilinear expansion of `p`.
Exercise 5.9 (generalized Chow argument). Suppose
f:\{-1,1\}^n\to\{-1,1\} has a degree-at-most-k polynomial threshold
representation f=\operatorname{sgn}(p) whose representing polynomial is
nonzero on the discrete cube. If g:\{-1,1\}^n\to\{-1,1\} has
\widehat g(S)=\widehat f(S) for every |S|\le k, prove g=f by applying
the pointwise inequality f(x)p(x)\ge g(x)p(x) and Plancherel's Theorem.
Lean code for Lemma5.1.13●1 theorem
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/ChowTheorem.leancomplete
theorem FABL.eq_of_polynomialThresholdRepresentation_of_fourierCoeff_eq {n : ℕ} (f g : FABL.BooleanFunction n) (p : FABL.SignCube n → ℝ) (k : ℕ) (hrep : FABL.IsPolynomialThresholdRepresentation f p) (hdegree : FABL.fourierDegree p ≤ k) (hp : ∀ (x : FABL.SignCube n), p x ≠ 0) (hcoeff : ∀ (S : Finset (Fin n)), S.card ≤ k → FABL.fourierCoeff g.toReal S = FABL.fourierCoeff f.toReal S) : g = f
theorem FABL.eq_of_polynomialThresholdRepresentation_of_fourierCoeff_eq {n : ℕ} (f g : FABL.BooleanFunction n) (p : FABL.SignCube n → ℝ) (k : ℕ) (hrep : FABL.IsPolynomialThresholdRepresentation f p) (hdegree : FABL.fourierDegree p ≤ k) (hp : ∀ (x : FABL.SignCube n), p x ≠ 0) (hcoeff : ∀ (S : Finset (Fin n)), S.card ≤ k → FABL.fourierCoeff g.toReal S = FABL.fourierCoeff f.toReal S) : g = f
O'Donnell, Exercise 5.9: a nonvanishing degree-at-most-`k` polynomial threshold representation is determined by the Fourier coefficients through degree `k`.
Theorem 5.8. Let f:\{-1,1\}^n\to\{-1,1\} be a polynomial threshold
function of degree at most k, and let
g:\{-1,1\}^n\to\{-1,1\} be arbitrary. If
\widehat g(S)=\widehat f(S)
\qquad\text{for every }S\subseteq[n]\text{ with }|S|\le k,
then g=f.
Lean code for Theorem5.1.14●1 theorem
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/ChowTheorem.leancomplete
theorem FABL.eq_of_isPolynomialThreshold_of_fourierCoeff_eq {n : ℕ} (f g : FABL.BooleanFunction n) (k : ℕ) (hf : FABL.IsPolynomialThreshold f k) (hcoeff : ∀ (S : Finset (Fin n)), S.card ≤ k → FABL.fourierCoeff g.toReal S = FABL.fourierCoeff f.toReal S) : g = f
theorem FABL.eq_of_isPolynomialThreshold_of_fourierCoeff_eq {n : ℕ} (f g : FABL.BooleanFunction n) (k : ℕ) (hf : FABL.IsPolynomialThreshold f k) (hcoeff : ∀ (S : Finset (Fin n)), S.card ≤ k → FABL.fourierCoeff g.toReal S = FABL.fourierCoeff f.toReal S) : g = f
O'Donnell, Theorem 5.8: a degree-at-most-`k` polynomial threshold function is determined by its Fourier coefficients through degree `k`.
Theorem 9.22 (hypercontractive norm comparison). If
p:\{-1,1\}^n\to\mathbb R has degree at most k, then
\lVert p\rVert_2\le e^k\lVert p\rVert_1.
More generally, for every 1\le r\le2,
\lVert p\rVert_2
\le \exp\bigl(k(2/r-1)\bigr)\lVert p\rVert_r.
The proof is given in Chapter 9.
Theorem 5.9. If f:\{-1,1\}^n\to\{-1,1\} is a degree-k
polynomial threshold function, then
\mathbf W^{\le k}[f]\ge e^{-2k}.
Theorem 5.10. Let \mathcal F\subseteq2^{[n]} and suppose
f:\{-1,1\}^n\to\{-1,1\} has a polynomial threshold representation by a
nonzero polynomial
f(x)=\operatorname{sgn}(p(x)),
\qquad
p(x)=\sum_{S\in\mathcal F}\widehat p(S)x^S.
Then
\sum_{S\in\mathcal F}|\widehat f(S)|\ge1.
The printed statement omits the nonzero condition, although its proof cancels
\lVert\widehat p\rVert_\infty. Since the book fixes
\operatorname{sgn}(0)=1, the omission creates the counterexample
p\equiv0, f\equiv1, \mathcal F=\varnothing. Thus the hypothesis
p\not\equiv0 is necessary.
Lean code for Theorem5.1.17●1 theorem
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/LinearThresholdFunctions.leancomplete
theorem FABL.one_le_sum_abs_fourierCoeff_of_polynomialThresholdRepresentation {n : ℕ} (f : FABL.BooleanFunction n) (p : FABL.SignCube n → ℝ) (𝓕 : Finset (Finset (Fin n))) (hrep : FABL.IsPolynomialThresholdRepresentation f p) (hp : p ≠ 0) (hsupport : FABL.fourierSupport p ⊆ 𝓕) : 1 ≤ ∑ S ∈ 𝓕, |FABL.fourierCoeff f.toReal S|
theorem FABL.one_le_sum_abs_fourierCoeff_of_polynomialThresholdRepresentation {n : ℕ} (f : FABL.BooleanFunction n) (p : FABL.SignCube n → ℝ) (𝓕 : Finset (Finset (Fin n))) (hrep : FABL.IsPolynomialThresholdRepresentation f p) (hp : p ≠ 0) (hsupport : FABL.fourierSupport p ⊆ 𝓕) : 1 ≤ ∑ S ∈ 𝓕, |FABL.fourierCoeff f.toReal S|
O'Donnell, Theorem 5.10: the Fourier `1`-mass of a Boolean function on the frequencies supporting a polynomial threshold representation is at least one. The hypothesis `p ≠ 0` excludes the degenerate zero representation of the constant-one function; it is required for the cancellation of the positive norm in the book's proof.
Corollary 5.11. Every polynomial threshold representation of the inner
product modulo 2 function
\operatorname{IP}_{2n}:\mathbb F_2^{2n}\to\{-1,1\} has sparsity at least
2^n.
For n>0,
\operatorname{IP}_{2n} takes the value -1 and hence every representing
polynomial is automatically nonzero, so Theorem 5.10 applies directly. In
arbitrary dimension the same conclusion holds under the explicit hypothesis
that the representing polynomial is nonzero. At n=0, the zero polynomial
represents the constant-one function under the convention
\operatorname{sgn}(0)=1.
Lean code for Corollary5.1.18●3 theorems
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.pow_two_le_polynomialSparsity_innerProductModTwo {n : ℕ} (p : FABL.SignCube (n + n) → ℝ) (hrep : FABL.IsPolynomialThresholdRepresentation (FABL.innerProductModTwoBoolean n) p) (hp : p ≠ 0) : 2 ^ n ≤ FABL.polynomialSparsity p
theorem FABL.pow_two_le_polynomialSparsity_innerProductModTwo {n : ℕ} (p : FABL.SignCube (n + n) → ℝ) (hrep : FABL.IsPolynomialThresholdRepresentation (FABL.innerProductModTwoBoolean n) p) (hp : p ≠ 0) : 2 ^ n ≤ FABL.polynomialSparsity p
Corollary 5.11 in every dimension, with the necessary nonzero condition inherited from Theorem 5.10.
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.innerProductModTwoBoolean_binaryCubeSignEquiv_joinF₂CubeBlocks {n : ℕ} (x y : FABL.F₂Cube n) : FABL.innerProductModTwoBoolean n ((FABL.binaryCubeSignEquiv (n + n)) (FABL.joinF₂CubeBlocks x y)) = FABL.signEncode (FABL.f₂DotProduct x y)
theorem FABL.innerProductModTwoBoolean_binaryCubeSignEquiv_joinF₂CubeBlocks {n : ℕ} (x y : FABL.F₂Cube n) : FABL.innerProductModTwoBoolean n ((FABL.binaryCubeSignEquiv (n + n)) (FABL.joinF₂CubeBlocks x y)) = FABL.signEncode (FABL.f₂DotProduct x y)
On joined binary inputs, the sign-valued inner-product function has its defining formula.
-
theoremdefined in FABL/Chapter05/InnerProductModTwo.leancomplete
theorem FABL.pow_two_le_polynomialSparsity_innerProductModTwo_of_pos {n : ℕ} (hn : 0 < n) (p : FABL.SignCube (n + n) → ℝ) (hrep : FABL.IsPolynomialThresholdRepresentation (FABL.innerProductModTwoBoolean n) p) : 2 ^ n ≤ FABL.polynomialSparsity p
theorem FABL.pow_two_le_polynomialSparsity_innerProductModTwo_of_pos {n : ℕ} (hn : 0 < n) (p : FABL.SignCube (n + n) → ℝ) (hrep : FABL.IsPolynomialThresholdRepresentation (FABL.innerProductModTwoBoolean n) p) : 2 ^ n ≤ FABL.polynomialSparsity p
Corollary 5.11 in the book's positive-dimensional regime: every polynomial threshold representation of `IP_{2n}` has sparsity at least `2ⁿ`. The representation is automatically nonzero because `IP_{2n}` takes the value `-1`.
Theorem 5.12. Let n\ge1, let f:\{-1,1\}^n\to\mathbb R, let
\delta>0, and let s be an integer satisfying
s\ge \frac{4n\lVert\widehat f\rVert_1^2}{\delta^2}.
Then there is a multilinear polynomial
q:\{-1,1\}^n\to\mathbb R of sparsity at most s such that
\lVert f-q\rVert_\infty<\delta.
The positive-arity condition is necessary for the displayed integer bound:
when n=0, a nonzero constant f, s=0, and sufficiently small
\delta satisfy the printed numerical hypothesis but admit no
zero-sparsity approximation.
Lean code for Theorem5.1.19●1 theorem
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/SparsePolynomialApproximation.leancomplete
theorem FABL.exists_sparsePolynomial_uniformApproximation {n s : ℕ} (hn : 0 < n) (f : FABL.SignCube n → ℝ) {δ : ℝ} (hδ : 0 < δ) (hs : 4 * ↑n * FABL.fourierOneNorm f ^ 2 / δ ^ 2 ≤ ↑s) : ∃ q, FABL.polynomialSparsity q ≤ s ∧ ∀ (x : FABL.SignCube n), |f x - q x| < δ
theorem FABL.exists_sparsePolynomial_uniformApproximation {n s : ℕ} (hn : 0 < n) (f : FABL.SignCube n → ℝ) {δ : ℝ} (hδ : 0 < δ) (hs : 4 * ↑n * FABL.fourierOneNorm f ^ 2 / δ ^ 2 ≤ ↑s) : ∃ q, FABL.polynomialSparsity q ≤ s ∧ ∀ (x : FABL.SignCube n), |f x - q x| < δ
O'Donnell, Theorem 5.12: a function on a positive-dimensional Boolean cube has a uniformly close polynomial whose Fourier support has the stated cardinality bound.
Corollary 5.13. Let n\ge1. Every
f:\{-1,1\}^n\to\{-1,1\} has a polynomial
threshold representation of sparsity at most
s=\left\lceil4n\lVert\widehat f\rVert_1^2\right\rceil.
Indeed, f can be represented as a majority of s parities or negated
parities.
Lean code for Corollary5.1.20●2 theorems
Associated Lean declarations
-
theoremdefined in FABL/Chapter05/SparsePolynomialApproximation.leancomplete
theorem FABL.exists_polynomialThresholdRepresentation_sparsity_le_ceil {n : ℕ} (hn : 0 < n) (f : FABL.BooleanFunction n) : ∃ p, FABL.IsPolynomialThresholdRepresentation f p ∧ FABL.polynomialSparsity p ≤ ⌈4 * ↑n * FABL.fourierOneNorm f.toReal ^ 2⌉₊
theorem FABL.exists_polynomialThresholdRepresentation_sparsity_le_ceil {n : ℕ} (hn : 0 < n) (f : FABL.BooleanFunction n) : ∃ p, FABL.IsPolynomialThresholdRepresentation f p ∧ FABL.polynomialSparsity p ≤ ⌈4 * ↑n * FABL.fourierOneNorm f.toReal ^ 2⌉₊
O'Donnell, Corollary 5.13: every Boolean function on a positive-dimensional cube has a polynomial threshold representation with sparsity at most the stated ceiling.
-
theoremdefined in FABL/Chapter05/SparsePolynomialApproximation.leancomplete
theorem FABL.exists_parityMajorityRepresentation {n : ℕ} (hn : 0 < n) (f : FABL.BooleanFunction n) : ∃ samples, (∀ (i : Fin ⌈4 * ↑n * FABL.fourierOneNorm f.toReal ^ 2⌉₊), FABL.fourierCoeff f.toReal (samples i) ≠ 0) ∧ ∀ (x : FABL.SignCube n), f x = FABL.thresholdSign (∑ i, ↑(SignType.sign (FABL.fourierCoeff f.toReal (samples i))) * FABL.monomial (samples i) x)
theorem FABL.exists_parityMajorityRepresentation {n : ℕ} (hn : 0 < n) (f : FABL.BooleanFunction n) : ∃ samples, (∀ (i : Fin ⌈4 * ↑n * FABL.fourierOneNorm f.toReal ^ 2⌉₊), FABL.fourierCoeff f.toReal (samples i) ≠ 0) ∧ ∀ (x : FABL.SignCube n), f x = FABL.thresholdSign (∑ i, ↑(SignType.sign (FABL.fourierCoeff f.toReal (samples i))) * FABL.monomial (samples i) x)
O'Donnell, Corollary 5.13: every Boolean function on a positive-dimensional cube is the majority of exactly the stated number of parity or negated-parity functions. Nonvanishing of each sampled coefficient certifies that every displayed `SignType.sign` is `-1` or `1`.