Influences and the noise operator on the Boolean cube
Coordinate flips
DefinitionCoordinate flip on the Boolean cube#✓fully proved
For a point \(x\) of the Boolean cube of dimension \(n\) and a coordinate \(i \in \{0, \dots, n-1\}\), the point \(x^{\oplus i}\) is obtained from \(x\) by negating its \(i\)-th coordinate (exchanging true and false) and leaving every other coordinate unchanged.
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
Uses 1 · Used by 15
TheoremA coordinate flip negates the flipped coordinate#✓fully proved
For every point \(x\) of the Boolean cube of dimension \(n\) and every coordinate \(i \in \{0, \dots, n-1\}\), the \(i\)-th coordinate of \(x^{\oplus i}\), the point \(x\) with its \(i\)-th coordinate flipped, is the negation \(\lnot x_i\) of \(x_i\) (true and false exchanged).
@[simp] theorem flipCoord_apply_self (x : BoolCube n) (i : Fin n) : flipCoord x i i = !x i
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:75
Uses 2 · Used by 3
TheoremA coordinate flip fixes the other coordinates#✓fully proved
For every point \(x\) of the Boolean cube of dimension \(n\) and all coordinates \(i, j \in \{0, \dots, n-1\}\) with \(j \ne i\), the \(j\)-th coordinate of \(x^{\oplus i}\), the point \(x\) with its \(i\)-th coordinate flipped, is \(x_j\).
@[simp] theorem flipCoord_apply_of_ne (x : BoolCube n) {i j : Fin n} (h : j ≠ i) :
flipCoord x i j = x j
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:75
Uses 2 · Used by 2
TheoremFlipping a coordinate twice#✓fully proved
For every point \(x\) of the Boolean cube of dimension \(n\) and every coordinate \(i \in \{0, \dots, n-1\}\), writing \(x^{\oplus i}\) for \(x\) with its \(i\)-th coordinate flipped, we have \((x^{\oplus i})^{\oplus i} = x\).
@[simp] theorem flipCoord_flipCoord (x : BoolCube n) (i : Fin n) :
flipCoord (flipCoord x i) i = x
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:75
Uses 4 · Used by 2
TheoremFlipping a coordinate is an involution#✓fully proved
For every \(n \in \mathbb{N}\) and every coordinate \(i \in \{0, \dots, n-1\}\), the map \(x \mapsto x^{\oplus i}\) on the Boolean cube of dimension \(n\), which flips the \(i\)-th coordinate, is an involution: applying it twice gives the identity.
theorem flipCoord_involutive (i : Fin n) : Function.Involutive (flipCoord · i)
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:75
Uses 3 · Used by 2
TheoremA coordinate flip moves every point#✓fully proved
For every point \(x\) of the Boolean cube of dimension \(n\) and every coordinate \(i \in \{0, \dots, n-1\}\), the point \(x^{\oplus i}\) obtained from \(x\) by flipping its \(i\)-th coordinate is different from \(x\).
theorem flipCoord_ne_self (x : BoolCube n) (i : Fin n) : flipCoord x i ≠ x
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:75
Uses 3
TheoremSign of a negated Boolean value#✓fully proved
For every Boolean value \(b\), the sign of its negation is the negative of its sign: \(\sigma(\lnot b) = -\sigma(b)\), where \(\sigma(\text{true}) = 1\) and \(\sigma(\text{false}) = -1\).
@[simp] theorem cubeVal_not (b : Bool) : cubeVal (!b) = -cubeVal b
def cubeVal : Bool → ℝ
| true => 1
| false => -1
MathlibExt/Analysis/Fourier/BooleanCube.lean:53
Uses 1 · Used by 1
TheoremCoordinate signs are nonzero#✓fully proved
For every Boolean value \(b\), its sign \(\sigma(b)\) (equal to \(1\) for true and \(-1\) for false) is nonzero.
@[simp] theorem cubeVal_ne_zero (b : Bool) : cubeVal b ≠ 0
def cubeVal : Bool → ℝ
| true => 1
| false => -1
MathlibExt/Analysis/Fourier/BooleanCube.lean:53
Uses 1
TheoremCoordinate signs have absolute value one#✓fully proved
For every Boolean value \(b\), its sign \(\sigma(b)\), which is \(1\) for true and \(-1\) for false, satisfies \(|\sigma(b)| = 1\).
@[simp] theorem abs_cubeVal (b : Bool) : |cubeVal b| = 1
def cubeVal : Bool → ℝ
| true => 1
| false => -1
MathlibExt/Analysis/Fourier/BooleanCube.lean:53
Uses 1 · Used by 1
TheoremFlipping a coordinate in a Fourier character#✓fully proved
Let \(S \subseteq \{0, \dots, n-1\}\), let \(x\) be a point of the Boolean cube in \(n\) coordinates, let \(i < n\), and write \(x^{\oplus i}\) for \(x\) with coordinate \(i\) flipped. Then the Fourier character \(\chi_S\) satisfies \(\chi_S(x^{\oplus i}) = -\chi_S(x)\) if \(i \in S\), and \(\chi_S(x^{\oplus i}) = \chi_S(x)\) if \(i \notin S\).
theorem cubeChi_flipCoord (S : Finset (Fin n)) (x : BoolCube n) (i : Fin n) :
cubeChi n S (flipCoord x i) = if i ∈ S then -cubeChi n S x else cubeChi n S x
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def cubeChi (n : ℕ) (S : Finset (Fin n)) (x : BoolCube n) : ℝ :=
∏ i ∈ S, cubeVal (x i)
MathlibExt/Analysis/Fourier/BooleanCube.lean:58
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:75
Uses 7 · Used by 1
TheoremFlipping a coordinate preserves sums over the cube#✓fully proved
Let \(M\) be an additive commutative monoid, \(n \in \mathbb{N}\), \(f\) a function from the Boolean cube of dimension \(n\) to \(M\), and \(i \in \{0, \dots, n-1\}\). For a point \(x\) of the cube write \(x^{\oplus i}\) for the point \(x\) with its \(i\)-th coordinate flipped. Then \(\sum_x f(x^{\oplus i}) = \sum_x f(x)\), both sums ranging over all points \(x\) of the cube.
theorem sum_comp_flipCoord {M : Type*} [AddCommMonoid M] (f : BoolCube n → M) (i : Fin n) :
∑ x, f (flipCoord x i) = ∑ x, f x
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:75
Uses 3
TheoremAverages are invariant under flipping a coordinate#✓fully proved
Let \(M\) be an additive commutative monoid that is a module over the nonnegative rationals, let \(f\) be a function from the Boolean cube in \(n\) coordinates to \(M\), and let \(i < n\). Writing \(x^{\oplus i}\) for \(x\) with coordinate \(i\) flipped, the uniform average of \(f(x^{\oplus i})\) over all points \(x\) of the cube equals the uniform average of \(f(x)\).
theorem expect_comp_flipCoord {M : Type*} [AddCommMonoid M] [Module ℚ≥0 M]
(f : BoolCube n → M) (i : Fin n) : 𝔼 x, f (flipCoord x i) = 𝔼 x, f x
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:75
Uses 3 · Used by 1
Fourier expansion
TheoremUniform average over the Boolean cube as a sum#✓fully proved
For every \(n \in \mathbb{N}\) and every function \(f : \{-1, 1\}^n \to \mathbb{R}\), the uniform average of \(f\) over the Boolean cube \(\{-1, 1\}^n\) is \(\mathbb{E}_x f(x) = \frac{1}{2^n} \sum_{x \in \{-1, 1\}^n} f(x)\).
theorem expect_eq_sum_div_two_pow (f : BoolCube n → ℝ) : 𝔼 x, f x = (∑ x, f x) / 2 ^ n
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
Uses 2 · Used by 2
TheoremFourier coefficients as averages#✓fully proved
For every real-valued function \(f\) on the Boolean cube in \(n\) coordinates and every set \(S\) of the \(n\) coordinates, the Fourier coefficient \(\hat f(S)\) is the average of \(f(x) \chi_S(x)\) over all points \(x\) of the cube, \(\hat f(S) = \mathbb{E}_x [f(x) \chi_S(x)]\), where \(\chi_S\) is the Fourier character of \(S\).
theorem boolFourierCoeff_eq_expect (f : BoolCube n → ℝ) (S : Finset (Fin n)) :
boolFourierCoeff n f S = 𝔼 x, f x * cubeChi n S x
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
def cubeChi (n : ℕ) (S : Finset (Fin n)) (x : BoolCube n) : ℝ :=
∏ i ∈ S, cubeVal (x i)
MathlibExt/Analysis/Fourier/BooleanCube.lean:58
Uses 3 · Used by 7
TheoremFourier coefficients as sums over the cube#✓fully proved
For every real-valued function \(f\) on the Boolean cube in \(n\) coordinates and every set \(S\) of the \(n\) coordinates, the Fourier coefficient of \(f\) at \(S\) is \(\hat f(S) = \frac{1}{2^n} \sum_x f(x) \chi_S(x)\), where the sum runs over all points \(x\) of the cube and \(\chi_S\) is the Fourier character of \(S\).
theorem boolFourierCoeff_eq_sum_div_two_pow (f : BoolCube n → ℝ) (S : Finset (Fin n)) :
boolFourierCoeff n f S = (∑ x, f x * cubeChi n S x) / 2 ^ n
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
def cubeChi (n : ℕ) (S : Finset (Fin n)) (x : BoolCube n) : ℝ :=
∏ i ∈ S, cubeVal (x i)
MathlibExt/Analysis/Fourier/BooleanCube.lean:58
Uses 5 · Used by 5
TheoremAverage over the Boolean cube as the empty Fourier coefficient#✓fully proved
For every \(n \in \mathbb{N}\) and every function \(f : \{-1, 1\}^n \to \mathbb{R}\), the uniform average \(\mathbb{E}_x f(x)\) of \(f\) over the Boolean cube \(\{-1, 1\}^n\) equals the Fourier coefficient \(\hat f(\emptyset)\) of \(f\) at the empty set.
theorem expect_eq_boolFourierCoeff_empty (f : BoolCube n → ℝ) :
𝔼 x, f x = boolFourierCoeff n f ∅
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
Uses 5 · Used by 3
TheoremOrthogonality of the Boolean cube characters#✓fully proved
Let \(n \in \mathbb{N}\), let \(S\) and \(T\) be subsets of \(\{0, \dots, n-1\}\), and let \(\chi_S\) and \(\chi_T\) be their Fourier characters. Then \(\sum_x \chi_S(x) \chi_T(x)\), the sum ranging over all points \(x\) of the Boolean cube of dimension \(n\), equals \(2^n\) if \(S = T\) and \(0\) otherwise.
theorem sum_cubeChi_mul_cubeChi_eq_ite (S T : Finset (Fin n)) :
∑ x : BoolCube n, cubeChi n S x * cubeChi n T x = if S = T then 2 ^ n else 0
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def cubeChi (n : ℕ) (S : Finset (Fin n)) (x : BoolCube n) : ℝ :=
∏ i ∈ S, cubeVal (x i)
MathlibExt/Analysis/Fourier/BooleanCube.lean:58
Uses 3 · Used by 3
TheoremSum of a Boolean cube character#✓fully proved
For every \(n \in \mathbb{N}\) and every subset \(S\) of \(\{0, \dots, n-1\}\), the sum of the Fourier character \(\chi_S\) over all points of the Boolean cube of dimension \(n\) equals \(2^n\) if \(S\) is empty and \(0\) otherwise.
theorem sum_cubeChi_eq_ite (S : Finset (Fin n)) :
∑ x : BoolCube n, cubeChi n S x = if S = ∅ then 2 ^ n else 0
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def cubeChi (n : ℕ) (S : Finset (Fin n)) (x : BoolCube n) : ℝ :=
∏ i ∈ S, cubeVal (x i)
MathlibExt/Analysis/Fourier/BooleanCube.lean:58
Uses 4 · Used by 2
TheoremDual orthogonality of the Boolean cube characters#✓fully proved
Let \(n \in \mathbb{N}\) and let \(x, y\) be points of the Boolean cube of dimension \(n\). For each subset \(S\) of \(\{0, \dots, n-1\}\) let \(\chi_S\) be the Fourier character of \(S\). Then \(\sum_S \chi_S(x) \chi_S(y)\), the sum ranging over all subsets \(S\) of \(\{0, \dots, n-1\}\), equals \(2^n\) if \(x = y\) and \(0\) otherwise.
theorem sum_cubeChi_apply_mul_cubeChi_apply_eq_ite (x y : BoolCube n) :
∑ S : Finset (Fin n), cubeChi n S x * cubeChi n S y = if x = y then 2 ^ n else 0
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def cubeChi (n : ℕ) (S : Finset (Fin n)) (x : BoolCube n) : ℝ :=
∏ i ∈ S, cubeVal (x i)
MathlibExt/Analysis/Fourier/BooleanCube.lean:58
Uses 4 · Used by 1
TheoremFourier inversion on the Boolean cube#✓fully proved
Let \(n \in \mathbb{N}\), let \(f\) be a real-valued function on the Boolean cube of dimension \(n\), and let \(x\) be a point of the cube. For each subset \(S\) of \(\{0, \dots, n-1\}\) let \(\hat f(S)\) be the Fourier coefficient of \(f\) at \(S\) and \(\chi_S\) the Fourier character of \(S\). Then \(\sum_S \hat f(S) \chi_S(x) = f(x)\), the sum ranging over all subsets \(S\) of \(\{0, \dots, n-1\}\).
theorem sum_boolFourierCoeff_mul_cubeChi (f : BoolCube n → ℝ) (x : BoolCube n) :
∑ S, boolFourierCoeff n f S * cubeChi n S x = f x
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
def cubeChi (n : ℕ) (S : Finset (Fin n)) (x : BoolCube n) : ℝ :=
∏ i ∈ S, cubeVal (x i)
MathlibExt/Analysis/Fourier/BooleanCube.lean:58
Uses 5 · Used by 4
TheoremPlancherel's identity on the Boolean cube#✓fully proved
For every \(n \in \mathbb{N}\) and all functions \(f, g : \{-1, 1\}^n \to \mathbb{R}\), the uniform average of \(f g\) over the Boolean cube \(\{-1, 1\}^n\) is the sum, over all sets \(S \subseteq \{0, \dots, n-1\}\), of the products of the Fourier coefficients of \(f\) and \(g\) at \(S\): \(\mathbb{E}_x f(x) g(x) = \sum_S \hat f(S) \hat g(S)\).
theorem expect_mul_eq_sum_boolFourierCoeff_mul (f g : BoolCube n → ℝ) :
𝔼 x, f x * g x = ∑ S, boolFourierCoeff n f S * boolFourierCoeff n g S
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
Uses 5 · Used by 2
TheoremParseval's identity on the Boolean cube#✓fully proved
For every \(n \in \mathbb{N}\) and every function \(f : \{-1, 1\}^n \to \mathbb{R}\), the uniform average of \(f^2\) over the Boolean cube \(\{-1, 1\}^n\) is the sum, over all sets \(S \subseteq \{0, \dots, n-1\}\), of the squares of the Fourier coefficients of \(f\) at \(S\): \(\mathbb{E}_x f(x)^2 = \sum_S \hat f(S)^2\).
theorem expect_sq_eq_sum_boolFourierCoeff_sq (f : BoolCube n → ℝ) :
𝔼 x, f x ^ 2 = ∑ S, boolFourierCoeff n f S ^ 2
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
Uses 3 · Used by 3
TheoremFourier coefficients determine the function#✓fully proved
If two real-valued functions \(f\) and \(g\) on the Boolean cube in \(n\) coordinates have the same Fourier coefficient \(\hat f(S) = \hat g(S)\) at every set \(S\) of the \(n\) coordinates, then \(f = g\).
theorem boolFourierCoeff_injective : Function.Injective (boolFourierCoeff n)
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
Uses 4 · Used by 1
TheoremAdditivity of Fourier coefficients#✓fully proved
For all real-valued functions \(f\) and \(g\) on the Boolean cube in \(n\) coordinates and every set \(S\) of the \(n\) coordinates, the Fourier coefficient of \(f + g\) at \(S\) is the sum of the Fourier coefficients of \(f\) and \(g\) at \(S\): \(\widehat{f + g}(S) = \hat f(S) + \hat g(S)\).
theorem boolFourierCoeff_add (f g : BoolCube n → ℝ) (S : Finset (Fin n)) :
boolFourierCoeff n (fun x => f x + g x) S =
boolFourierCoeff n f S + boolFourierCoeff n g S
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
Uses 4
TheoremFourier coefficients of a difference#✓fully proved
For real-valued functions \(f\) and \(g\) on the Boolean cube \(\{-1, 1\}^n\) and every set \(S \subseteq \{0, \dots, n-1\}\), the Fourier coefficient of \(f - g\) at \(S\) is \(\widehat{f - g}(S) = \hat f(S) - \hat g(S)\).
theorem boolFourierCoeff_sub (f g : BoolCube n → ℝ) (S : Finset (Fin n)) :
boolFourierCoeff n (fun x => f x - g x) S =
boolFourierCoeff n f S - boolFourierCoeff n g S
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
Uses 4 · Used by 2
TheoremHomogeneity of Fourier coefficients#✓fully proved
For every real \(c\), every real-valued function \(f\) on the Boolean cube in \(n\) coordinates and every set \(S\) of the \(n\) coordinates, the Fourier coefficient of \(c f\) at \(S\) is \(c\) times the Fourier coefficient of \(f\) at \(S\): \(\widehat{c f}(S) = c \hat f(S)\).
theorem boolFourierCoeff_const_mul (c : ℝ) (f : BoolCube n → ℝ) (S : Finset (Fin n)) :
boolFourierCoeff n (fun x => c * f x) S = c * boolFourierCoeff n f S
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
Uses 4 · Used by 1
TheoremFourier coefficients of a constant function#✓fully proved
For every real \(c\) and every set \(S\) of the \(n\) coordinates, the Fourier coefficient at \(S\) of the constant function \(x \mapsto c\) on the Boolean cube in \(n\) coordinates is \(c\) if \(S = \emptyset\) and \(0\) otherwise.
theorem boolFourierCoeff_const (c : ℝ) (S : Finset (Fin n)) :
boolFourierCoeff n (fun _ => c) S = if S = ∅ then c else 0
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
Uses 5 · Used by 2
TheoremFourier coefficients of a character#✓fully proved
For all sets \(S\) and \(T\) of the \(n\) coordinates, the Fourier coefficient at \(S\) of the Fourier character \(\chi_T\) on the Boolean cube in \(n\) coordinates, \(\chi_T(x) = \prod_{i \in T} \sigma(x_i)\) with \(\sigma(\text{true}) = 1\) and \(\sigma(\text{false}) = -1\), is \(1\) if \(T = S\) and \(0\) otherwise.
theorem boolFourierCoeff_cubeChi (T S : Finset (Fin n)) :
boolFourierCoeff n (cubeChi n T) S = if T = S then 1 else 0
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
def cubeChi (n : ℕ) (S : Finset (Fin n)) (x : BoolCube n) : ℝ :=
∏ i ∈ S, cubeVal (x i)
MathlibExt/Analysis/Fourier/BooleanCube.lean:58
Uses 5 · Used by 1
TheoremUniqueness of the Fourier expansion#✓fully proved
For real numbers \(a_T\) indexed by the sets \(T \subseteq \{0, \dots, n-1\}\), let \(g(x) = \sum_T a_T \chi_T(x)\) on the Boolean cube \(\{-1, 1\}^n\), where \(\chi_T\) is the Fourier character of \(T\). Then for every set \(S \subseteq \{0, \dots, n-1\}\) the Fourier coefficient of \(g\) at \(S\) is \(\hat g(S) = a_S\).
theorem boolFourierCoeff_sum_mul_cubeChi (a : Finset (Fin n) → ℝ) (S : Finset (Fin n)) :
boolFourierCoeff n (fun x => ∑ T, a T * cubeChi n T x) S = a S
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
def cubeChi (n : ℕ) (S : Finset (Fin n)) (x : BoolCube n) : ℝ :=
∏ i ∈ S, cubeVal (x i)
MathlibExt/Analysis/Fourier/BooleanCube.lean:58
Uses 5 · Used by 1
TheoremFlipping a coordinate negates the Fourier coefficients of the sets containing it#✓fully proved
Let \(f\) be a real-valued function on the Boolean cube in \(n\) coordinates, let \(i\) be a coordinate, and let \(g(x) = f(x^{\oplus i})\), where \(x^{\oplus i}\) is the point \(x\) with its \(i\)-th coordinate flipped. Write \(\hat f(S)\) and \(\hat g(S)\) for the Fourier coefficients of \(f\) and \(g\) at a set \(S\) of the \(n\) coordinates. Then for every such \(S\), \(\hat g(S) = -\hat f(S)\) if \(i \in S\) and \(\hat g(S) = \hat f(S)\) if \(i \notin S\).
theorem boolFourierCoeff_comp_flipCoord (f : BoolCube n → ℝ) (i : Fin n) (S : Finset (Fin n)) :
boolFourierCoeff n (fun x => f (flipCoord x i)) S =
if i ∈ S then -boolFourierCoeff n f S else boolFourierCoeff n f S
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:75
Uses 8 · Used by 1
Influence, total influence and variance
DefinitionInfluence of a coordinate#✓fully proved
For a real-valued function \(f\) on the Boolean cube \(\{-1, 1\}^n\) and a coordinate \(i \in \{0, \dots, n-1\}\), the influence of \(i\) on \(f\) is \(\mathrm{Inf}_i[f] = \mathbb{E}_x\big[\big((f(x) - f(x^{\oplus i})) / 2\big)^2\big]\), where the expectation is over \(x\) uniform on the cube and \(x^{\oplus i}\) is \(x\) with its \(i\)-th coordinate flipped.
noncomputable def boolInfluence (f : BoolCube n → ℝ) (i : Fin n) : ℝ :=
𝔼 x, ((f x - f (flipCoord x i)) / 2) ^ 2
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:75
Uses 2 · Used by 11
DefinitionTotal influence on the Boolean cube#✓fully proved
For a function \(f\) from the Boolean cube \(\{-1, 1\}^n\) to \(\mathbb{R}\), the total influence of \(f\) is the sum of the influences of its \(n\) coordinates, \(\mathrm{I}[f] = \sum_{i=0}^{n-1} \mathrm{Inf}_i[f]\), where \(\mathrm{Inf}_i[f] = \mathbb{E}_x \left[\left(\frac{f(x) - f(x^{\oplus i})}{2}\right)^2\right]\), \(x^{\oplus i}\) is \(x\) with its \(i\)-th coordinate flipped and \(\mathbb{E}_x\) is the uniform average over the points \(x\) of the cube.
noncomputable def boolTotalInfluence (f : BoolCube n → ℝ) : ℝ :=
∑ i, boolInfluence f i
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolInfluence (f : BoolCube n → ℝ) (i : Fin n) : ℝ :=
𝔼 x, ((f x - f (flipCoord x i)) / 2) ^ 2
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:302
Uses 2 · Used by 5
DefinitionVariance on the Boolean cube#✓fully proved
For a function \(f : \{-1, 1\}^n \to \mathbb{R}\) on the Boolean cube, its variance under the uniform distribution is \(\mathrm{Var}[f] = \mathbb{E}_x\big[(f(x) - \mathbb{E}_y[f(y)])^2\big]\), where \(\mathbb{E}_x\) denotes the uniform average over the \(2^n\) points \(x\) of the cube.
noncomputable def boolVariance (f : BoolCube n → ℝ) : ℝ :=
𝔼 x, (f x - 𝔼 y, f y) ^ 2
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
Uses 1 · Used by 7
TheoremInfluences are nonnegative#✓fully proved
For every real-valued function \(f\) on the Boolean cube \(\{-1, 1\}^n\) and every coordinate \(i \in \{0, \dots, n-1\}\), the influence \(\mathrm{Inf}_i[f]\) of coordinate \(i\) on \(f\) satisfies \(\mathrm{Inf}_i[f] \ge 0\).
theorem boolInfluence_nonneg (f : BoolCube n → ℝ) (i : Fin n) : 0 ≤ boolInfluence f i
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolInfluence (f : BoolCube n → ℝ) (i : Fin n) : ℝ :=
𝔼 x, ((f x - f (flipCoord x i)) / 2) ^ 2
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:302
Uses 3 · Used by 1
TheoremTotal influence is nonnegative#✓fully proved
For every function \(f\) from the Boolean cube \(\{-1, 1\}^n\) to \(\mathbb{R}\), the total influence of \(f\) is nonnegative.
theorem boolTotalInfluence_nonneg (f : BoolCube n → ℝ) : 0 ≤ boolTotalInfluence f
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolTotalInfluence (f : BoolCube n → ℝ) : ℝ :=
∑ i, boolInfluence f i
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:306
Uses 4
TheoremVariance on the Boolean cube is nonnegative#✓fully proved
For every function \(f : \{-1, 1\}^n \to \mathbb{R}\) on the Boolean cube, the variance of \(f\) under the uniform distribution is at least \(0\).
theorem boolVariance_nonneg (f : BoolCube n → ℝ) : 0 ≤ boolVariance f
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolVariance (f : BoolCube n → ℝ) : ℝ :=
𝔼 x, (f x - 𝔼 y, f y) ^ 2
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:310
Uses 2
TheoremConstant functions have zero influence#✓fully proved
For every real number \(c\) and every coordinate \(i \in \{0, \dots, n-1\}\), the influence of coordinate \(i\) on the constant function with value \(c\) on the Boolean cube \(\{-1, 1\}^n\) is \(0\).
@[simp] theorem boolInfluence_const (c : ℝ) (i : Fin n) : boolInfluence (fun _ => c) i = 0
noncomputable def boolInfluence (f : BoolCube n → ℝ) (i : Fin n) : ℝ :=
𝔼 x, ((f x - f (flipCoord x i)) / 2) ^ 2
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:302
Uses 3 · Used by 1
TheoremConstant functions have zero total influence#✓fully proved
For every real number \(c\), the constant function with value \(c\) on the Boolean cube \(\{-1, 1\}^n\) has total influence \(0\).
@[simp] theorem boolTotalInfluence_const (c : ℝ) :
boolTotalInfluence (fun _ : BoolCube n => c) = 0
noncomputable def boolTotalInfluence (f : BoolCube n → ℝ) : ℝ :=
∑ i, boolInfluence f i
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:306
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
Uses 4
TheoremConstant functions have zero variance#✓fully proved
For every real number \(c\), the constant function with value \(c\) on the Boolean cube \(\{-1, 1\}^n\) has variance \(0\) under the uniform distribution.
@[simp] theorem boolVariance_const (c : ℝ) : boolVariance (fun _ : BoolCube n => c) = 0
noncomputable def boolVariance (f : BoolCube n → ℝ) : ℝ :=
𝔼 x, (f x - 𝔼 y, f y) ^ 2
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:310
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
Uses 2
TheoremInfluence of a Boolean function as a flip probability#✓fully proved
Let \(f\) be a real-valued function on the Boolean cube \(\{-1, 1\}^n\) that takes only the values \(1\) and \(-1\), and let \(i \in \{0, \dots, n-1\}\). Then the influence of coordinate \(i\) on \(f\) equals the probability, for \(x\) uniform on the cube, that \(f(x^{\oplus i}) \ne f(x)\), where \(x^{\oplus i}\) is \(x\) with its \(i\)-th coordinate flipped.
theorem boolInfluence_eq_expect_ite_ne {f : BoolCube n → ℝ} (hf : ∀ x, f x = 1 ∨ f x = -1)
(i : Fin n) :
boolInfluence f i = 𝔼 x, if f (flipCoord x i) ≠ f x then (1 : ℝ) else 0
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolInfluence (f : BoolCube n → ℝ) (i : Fin n) : ℝ :=
𝔼 x, ((f x - f (flipCoord x i)) / 2) ^ 2
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:302
def flipCoord (x : BoolCube n) (i : Fin n) : BoolCube n :=
Function.update x i (!x i)
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:75
Uses 3
TheoremFourier formula for influence#✓fully proved
For every real-valued function \(f\) on the Boolean cube \(\{-1, 1\}^n\) and every coordinate \(i \in \{0, \dots, n-1\}\), the influence of coordinate \(i\) on \(f\) is \(\mathrm{Inf}_i[f] = \sum_{S \ni i} \hat f(S)^2\), where \(\hat f(S)\) is the Fourier coefficient of \(f\) at \(S\) and the sum runs over the sets \(S \subseteq \{0, \dots, n-1\}\) that contain \(i\).
theorem boolInfluence_eq_sum_sq (f : BoolCube n → ℝ) (i : Fin n) :
boolInfluence f i = ∑ S with i ∈ S, boolFourierCoeff n f S ^ 2
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolInfluence (f : BoolCube n → ℝ) (i : Fin n) : ℝ :=
𝔼 x, ((f x - f (flipCoord x i)) / 2) ^ 2
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:302
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
Uses 8 · Used by 2
TheoremVariance in terms of Fourier coefficients#✓fully proved
For every function \(f : \{-1, 1\}^n \to \mathbb{R}\) on the Boolean cube, the variance of \(f\) under the uniform distribution equals \(\sum_{S \neq \emptyset} \hat f(S)^2\), where the sum runs over the nonempty sets \(S \subseteq \{0, \dots, n-1\}\) and \(\hat f(S)\) is the Fourier coefficient of \(f\) at \(S\).
theorem boolVariance_eq_sum_sq (f : BoolCube n → ℝ) :
boolVariance f = ∑ S with S.Nonempty, boolFourierCoeff n f S ^ 2
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolVariance (f : BoolCube n → ℝ) : ℝ :=
𝔼 x, (f x - 𝔼 y, f y) ^ 2
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:310
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
Uses 7 · Used by 2
TheoremVariance as mean square minus squared mean#✓fully proved
For every function \(f : \{-1, 1\}^n \to \mathbb{R}\) on the Boolean cube, the variance of \(f\) under the uniform distribution equals \(\mathbb{E}_x[f(x)^2] - (\mathbb{E}_x[f(x)])^2\), where \(\mathbb{E}_x\) denotes the uniform average over the \(2^n\) points \(x\) of the cube.
theorem boolVariance_eq_expect_sq_sub_sq (f : BoolCube n → ℝ) :
boolVariance f = 𝔼 x, f x ^ 2 - (𝔼 x, f x) ^ 2
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolVariance (f : BoolCube n → ℝ) : ℝ :=
𝔼 x, (f x - 𝔼 y, f y) ^ 2
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:310
Uses 2 · Used by 2
TheoremTotal influence in Fourier form#✓fully proved
For every function \(f\) from the Boolean cube \(\{-1, 1\}^n\) to \(\mathbb{R}\), the total influence of \(f\) is
where \(\hat f(S)\) is the Fourier coefficient of \(f\) at \(S\).
theorem boolTotalInfluence_eq_sum_card_mul_sq (f : BoolCube n → ℝ) :
boolTotalInfluence f = ∑ S, (S.card : ℝ) * boolFourierCoeff n f S ^ 2
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolTotalInfluence (f : BoolCube n → ℝ) : ℝ :=
∑ i, boolInfluence f i
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:306
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
Uses 5 · Used by 2
TheoremPoincaré inequality on the Boolean cube#✓fully proved
For every function \(f : \{-1, 1\}^n \to \mathbb{R}\) on the Boolean cube, the variance of \(f\) under the uniform distribution is at most the total influence of \(f\): \(\mathrm{Var}[f] \le I[f]\).
theorem boolVariance_le_boolTotalInfluence (f : BoolCube n → ℝ) :
boolVariance f ≤ boolTotalInfluence f
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolVariance (f : BoolCube n → ℝ) : ℝ :=
𝔼 x, (f x - 𝔼 y, f y) ^ 2
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:310
noncomputable def boolTotalInfluence (f : BoolCube n → ℝ) : ℝ :=
∑ i, boolInfluence f i
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:306
The noise operator
DefinitionNoise operator on the Boolean cube#✓fully proved
For a real number \(\rho\) and a function \(f\) from the Boolean cube \(\{-1, 1\}^n\) to \(\mathbb{R}\), the noise operator \(T_\rho\) sends \(f\) to the function
where \(y\) runs over all points of the cube and \(\sigma\) is the sign of a coordinate: \(\sigma(\mathrm{true}) = 1\) and \(\sigma(\mathrm{false}) = -1\).
For \(-1 \le \rho \le 1\), \(T_\rho f(x)\) is the expectation of \(f(y)\) when each coordinate of \(y\) independently equals the corresponding coordinate of \(x\) with probability \((1 + \rho) / 2\); the formula is used for every real \(\rho\).
noncomputable def boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) (x : BoolCube n) : ℝ :=
∑ y, (∏ i, (1 + ρ * cubeVal (x i) * cubeVal (y i)) / 2) * f y
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
def cubeVal : Bool → ℝ
| true => 1
| false => -1
MathlibExt/Analysis/Fourier/BooleanCube.lean:53
Uses 2 · Used by 13
TheoremFourier expansion of the noise operator#✓fully proved
For every real number \(\rho\), every function \(f\) from the Boolean cube \(\{-1, 1\}^n\) to \(\mathbb{R}\) and every point \(x\) of the cube,
where \(T_\rho\) is the noise operator, \(\hat f(S)\) is the Fourier coefficient of \(f\) at \(S\), \(\chi_S\) is the Fourier character of \(S\), and \(\rho^0 = 1\) also when \(\rho = 0\).
theorem boolNoiseOp_eq_sum (ρ : ℝ) (f : BoolCube n → ℝ) (x : BoolCube n) :
boolNoiseOp ρ f x = ∑ S, ρ ^ S.card * boolFourierCoeff n f S * cubeChi n S x
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) (x : BoolCube n) : ℝ :=
∑ y, (∏ i, (1 + ρ * cubeVal (x i) * cubeVal (y i)) / 2) * f y
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:415
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
def cubeChi (n : ℕ) (S : Finset (Fin n)) (x : BoolCube n) : ℝ :=
∏ i ∈ S, cubeVal (x i)
MathlibExt/Analysis/Fourier/BooleanCube.lean:58
Uses 6 · Used by 6
TheoremFourier coefficients of the noise operator#✓fully proved
For every real \(\rho\), every real-valued function \(f\) on the Boolean cube in \(n\) coordinates and every set \(S\) of the \(n\) coordinates, the Fourier coefficient at \(S\) of \(T_\rho f\), the noise operator with parameter \(\rho\) applied to \(f\), is \(\widehat{T_\rho f}(S) = \rho^{|S|} \hat f(S)\).
theorem boolFourierCoeff_boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) (S : Finset (Fin n)) :
boolFourierCoeff n (boolNoiseOp ρ f) S = ρ ^ S.card * boolFourierCoeff n f S
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolFourierCoeff (n : ℕ) (f : BoolCube n → ℝ)
(S : Finset (Fin n)) : ℝ :=
(∑ x : BoolCube n, f x * cubeChi n S x) / (Fintype.card (BoolCube n) : ℝ)
MathlibExt/Analysis/Fourier/BooleanCube.lean:62
noncomputable def boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) (x : BoolCube n) : ℝ :=
∑ y, (∏ i, (1 + ρ * cubeVal (x i) * cubeVal (y i)) / 2) * f y
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:415
Uses 6 · Used by 3
TheoremThe noise operator \(T_1\) is the identity#✓fully proved
For every function \(f\) from the Boolean cube \(\{-1, 1\}^n\) to \(\mathbb{R}\), the noise operator with \(\rho = 1\) fixes \(f\): \(T_1 f = f\).
@[simp] theorem boolNoiseOp_one (f : BoolCube n → ℝ) : boolNoiseOp 1 f = f
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) (x : BoolCube n) : ℝ :=
∑ y, (∏ i, (1 + ρ * cubeVal (x i) * cubeVal (y i)) / 2) * f y
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:415
TheoremThe noise operator \(T_0\) takes the mean#✓fully proved
For every function \(f\) from the Boolean cube \(\{-1, 1\}^n\) to \(\mathbb{R}\), the noise operator with \(\rho = 0\) sends \(f\) to the constant function whose value is the mean \(\mathbb{E}_x f(x) = 2^{-n} \sum_x f(x)\) of \(f\) under the uniform distribution.
@[simp] theorem boolNoiseOp_zero (f : BoolCube n → ℝ) : boolNoiseOp 0 f = fun _ => 𝔼 x, f x
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) (x : BoolCube n) : ℝ :=
∑ y, (∏ i, (1 + ρ * cubeVal (x i) * cubeVal (y i)) / 2) * f y
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:415
Uses 7
TheoremSemigroup property of the noise operator#✓fully proved
For all real numbers \(\rho\) and \(\sigma\) and every real-valued function \(f\) on the Boolean cube \(\{-1, 1\}^n\), applying the noise operator \(T_\sigma\) and then \(T_\rho\) to \(f\) gives \(T_{\rho\sigma} f\): \(T_\rho(T_\sigma f) = T_{\rho\sigma} f\).
theorem boolNoiseOp_boolNoiseOp (ρ σ : ℝ) (f : BoolCube n → ℝ) :
boolNoiseOp ρ (boolNoiseOp σ f) = boolNoiseOp (ρ * σ) f
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) (x : BoolCube n) : ℝ :=
∑ y, (∏ i, (1 + ρ * cubeVal (x i) * cubeVal (y i)) / 2) * f y
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:415
TheoremThe noise operator preserves the mean#✓fully proved
For every real \(\rho\) and every function \(f : \{-1, 1\}^n \to \mathbb{R}\) on the Boolean cube, the uniform average over the cube of \(T_\rho f\), the image of \(f\) under the noise operator with parameter \(\rho\), equals the uniform average of \(f\).
theorem expect_boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) :
𝔼 x, boolNoiseOp ρ f x = 𝔼 x, f x
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) (x : BoolCube n) : ℝ :=
∑ y, (∏ i, (1 + ρ * cubeVal (x i) * cubeVal (y i)) / 2) * f y
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:415
TheoremCharacters are eigenfunctions of the noise operator#✓fully proved
For every real number \(\rho\) and every set \(S \subseteq \{0, \dots, n-1\}\), the noise operator \(T_\rho\) maps the Fourier character \(\chi_S\) on the Boolean cube \(\{-1, 1\}^n\) to the function \(x \mapsto \rho^{|S|} \chi_S(x)\), so \(\chi_S\) is an eigenfunction of \(T_\rho\) with eigenvalue \(\rho^{|S|}\).
theorem boolNoiseOp_cubeChi (ρ : ℝ) (S : Finset (Fin n)) :
boolNoiseOp ρ (cubeChi n S) = fun x => ρ ^ S.card * cubeChi n S x
noncomputable def boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) (x : BoolCube n) : ℝ :=
∑ y, (∏ i, (1 + ρ * cubeVal (x i) * cubeVal (y i)) / 2) * f y
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:415
def cubeChi (n : ℕ) (S : Finset (Fin n)) (x : BoolCube n) : ℝ :=
∏ i ∈ S, cubeVal (x i)
MathlibExt/Analysis/Fourier/BooleanCube.lean:58
Uses 6 · Used by 1
TheoremThe noise operator fixes constants#✓fully proved
For every real number \(\rho\) and every real number \(c\), the noise operator \(T_\rho\) maps the constant function with value \(c\) on the Boolean cube \(\{-1, 1\}^n\) to itself.
@[simp] theorem boolNoiseOp_const (ρ c : ℝ) :
boolNoiseOp ρ (fun _ : BoolCube n => c) = fun _ => c
noncomputable def boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) (x : BoolCube n) : ℝ :=
∑ y, (∏ i, (1 + ρ * cubeVal (x i) * cubeVal (y i)) / 2) * f y
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:415
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
TheoremPositivity of the noise operator#✓fully proved
For every real number \(\rho\) with \(|\rho| \le 1\), the noise operator \(T_\rho\) on the Boolean cube maps nonnegative functions to nonnegative functions: if \(f\) is a real function on the cube with \(f(y) \ge 0\) for every point \(y\), then \(T_\rho f(x) \ge 0\) for every point \(x\) of the cube.
theorem boolNoiseOp_nonneg {ρ : ℝ} (hρ : |ρ| ≤ 1) {f : BoolCube n → ℝ} (hf : ∀ x, 0 ≤ f x)
(x : BoolCube n) : 0 ≤ boolNoiseOp ρ f x
abbrev BoolCube (n : ℕ) : Type := Fin n → Bool
MathlibExt/Analysis/Fourier/BooleanCube.lean:50
noncomputable def boolNoiseOp (ρ : ℝ) (f : BoolCube n → ℝ) (x : BoolCube n) : ℝ :=
∑ y, (∏ i, (1 + ρ * cubeVal (x i) * cubeVal (y i)) / 2) * f y
MathlibExt/Analysis/Fourier/BooleanCubeInfluence.lean:415
Uses 4
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.