8.1. Fourier bases for product spaces
-
FABL.PMFHasFullSupport[complete] -
FABL.productProbabilityPMF[complete] -
FABL.productProbabilityPMF_apply[complete] -
FABL.productProbabilityPMF_hasFullSupport[complete] -
FABL.ProductL2[complete] -
FABL.pmfInner[complete] -
FABL.productInner[complete]
Definition 8.1. Let (\Omega,\pi) be a finite probability space with
|\Omega|\ge2 and full support. For n\in\mathbb N^+,
L^2(\Omega^n,\pi^{\otimes n}) is the real vector space of functions
f:\Omega^n\to\mathbb R with inner product
\langle f,g\rangle
=\mathbb E_{x\sim\pi^{\otimes n}}[f(x)g(x)].
The full-support assumption makes this form positive definite.
Lean code for Definition8.1.1●7 declarations
Associated Lean declarations
-
FABL.PMFHasFullSupport[complete]
-
FABL.productProbabilityPMF[complete]
-
FABL.productProbabilityPMF_apply[complete]
-
FABL.productProbabilityPMF_hasFullSupport[complete]
-
FABL.ProductL2[complete]
-
FABL.pmfInner[complete]
-
FABL.productInner[complete]
-
FABL.PMFHasFullSupport[complete] -
FABL.productProbabilityPMF[complete] -
FABL.productProbabilityPMF_apply[complete] -
FABL.productProbabilityPMF_hasFullSupport[complete] -
FABL.ProductL2[complete] -
FABL.pmfInner[complete] -
FABL.productInner[complete]
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.PMFHasFullSupport.{u_1} {Ω : Type u_1} (π : PMF Ω) : Prop
def FABL.PMFHasFullSupport.{u_1} {Ω : Type u_1} (π : PMF Ω) : Prop
O'Donnell, Definition 8.1: a finite probability mass function has full support when every point has nonzero mass.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.productProbabilityPMF.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (n : ℕ) : PMF (Fin n → Ω)
def FABL.productProbabilityPMF.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (n : ℕ) : PMF (Fin n → Ω)
O'Donnell, Definition 8.1: the product law `π⊗n` on `Ωⁿ`.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.productProbabilityPMF_apply.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (n : ℕ) (x : Fin n → Ω) : (FABL.productProbabilityPMF π n) x = ∏ i, π (x i)
theorem FABL.productProbabilityPMF_apply.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (n : ℕ) (x : Fin n → Ω) : (FABL.productProbabilityPMF π n) x = ∏ i, π (x i)
The product law evaluates as the product of its coordinate masses.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.productProbabilityPMF_hasFullSupport.{u_1} {Ω : Type u_1} [Fintype Ω] {π : PMF Ω} (hπ : FABL.PMFHasFullSupport π) (n : ℕ) : FABL.PMFHasFullSupport (FABL.productProbabilityPMF π n)
theorem FABL.productProbabilityPMF_hasFullSupport.{u_1} {Ω : Type u_1} [Fintype Ω] {π : PMF Ω} (hπ : FABL.PMFHasFullSupport π) (n : ℕ) : FABL.PMFHasFullSupport (FABL.productProbabilityPMF π n)
A finite independent product of a full-support law again has full support.
-
abbrevdefined in FABL/Chapter08/ProductFourierBases.leancomplete
abbrev FABL.ProductL2.{u_1} (Ω : Type u_1) (n : ℕ) : Type u_1
abbrev FABL.ProductL2.{u_1} (Ω : Type u_1) (n : ℕ) : Type u_1
The real function space denoted `L²(Ωⁿ, π⊗n)` in Definition 8.1. The probability law is kept explicit because the same finite function type may be studied under several laws.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.pmfInner.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (f g : Ω → ℝ) : ℝ
def FABL.pmfInner.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (f g : Ω → ℝ) : ℝ
The PMF-weighted real inner product `⟨f,g⟩ = 𝔼[f g]`.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.productInner.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (n : ℕ) (f g : FABL.ProductL2 Ω n) : ℝ
def FABL.productInner.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (n : ℕ) (f g : FABL.ProductL2 Ω n) : ℝ
The inner product on `L²(Ωⁿ,π⊗n)`.
-
FABL.ThreePoint[complete] -
FABL.finThreePointEquiv[complete]
Example 8.2. Take \Omega=\{a,b,c\} with
\pi(a)=\pi(b)=\pi(c)=1/3, where a,b,c are abstract elements.
Lean code for Lemma8.1.2●2 definitions
Associated Lean declarations
-
FABL.ThreePoint[complete]
-
FABL.finThreePointEquiv[complete]
-
FABL.ThreePoint[complete] -
FABL.finThreePointEquiv[complete]
-
inductivedefined in FABL/Chapter08/ProductFourierBases.leancomplete
inductive FABL.ThreePoint : Type
inductive FABL.ThreePoint : Type
The abstract three-point space `{a,b,c}` from Examples 8.2, 8.10, and 8.15.Constructors
FABL.ThreePoint.a : FABL.ThreePoint
FABL.ThreePoint.b : FABL.ThreePoint
FABL.ThreePoint.c : FABL.ThreePoint
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.finThreePointEquiv : Fin 3 ≃ FABL.ThreePoint
def FABL.finThreePointEquiv : Fin 3 ≃ FABL.ThreePoint
Explicit enumeration of the three-point space.
Notation 8.3. The notation \pi_{1/2} denotes the uniform law on
\{-1,1\}. Thus
L^2(\{-1,1\}^n,\pi_{1/2}^{\otimes n}) is abbreviated to
L^2(\{-1,1\}^n).
Lean code for Definition8.1.3●1 definition
Associated Lean declarations
-
FABL.signSiteFourierFunction[complete]
-
FABL.signSiteFourierFunction[complete]
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.signSiteFourierFunction (j : Fin 2) (x : FABL.Sign) : ℝ
def FABL.signSiteFourierFunction (j : Fin 2) (x : FABL.Sign) : ℝ
The two single-site Fourier functions on a uniformly random sign.
-
FABL.pmfLpNorm[complete] -
FABL.productLpNorm[complete]
Notation 8.4. For f:\Omega^n\to\mathbb R and p\ge1, write
\|f\|_p
=\left(\mathbb E_{x\sim\pi^{\otimes n}}[|f(x)|^p]\right)^{1/p}.
Restriction notation is extended coordinatewise to the same product domain.
Lean code for Definition8.1.4●2 definitions
Associated Lean declarations
-
FABL.pmfLpNorm[complete]
-
FABL.productLpNorm[complete]
-
FABL.pmfLpNorm[complete] -
FABL.productLpNorm[complete]
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.pmfLpNorm.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (p : ℝ) (f : Ω → ℝ) : ℝ
def FABL.pmfLpNorm.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (p : ℝ) (f : Ω → ℝ) : ℝ
The normalized weighted `Lᵖ` quantity from Notation 8.4.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.productLpNorm.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (n : ℕ) (p : ℝ) (f : FABL.ProductL2 Ω n) : ℝ
def FABL.productLpNorm.{u_1} {Ω : Type u_1} [Fintype Ω] (π : PMF Ω) (n : ℕ) (p : ℝ) (f : FABL.ProductL2 Ω n) : ℝ
The `Lᵖ` quantity on `L²(Ωⁿ,π⊗n)`.
-
FABL.indicatorBasis[complete] -
FABL.indicatorBasis_apply[complete]
Definition 8.5. If |\Omega|=m, the indicator (standard) basis of
L^2(\Omega,\pi) is (\mathbf 1_x)_{x\in\Omega}, where
\mathbf 1_x(y)=
\begin{cases}1,&y=x,\\0,&y\ne x.\end{cases}
Lean code for Definition8.1.5●2 declarations
Associated Lean declarations
-
FABL.indicatorBasis[complete]
-
FABL.indicatorBasis_apply[complete]
-
FABL.indicatorBasis[complete] -
FABL.indicatorBasis_apply[complete]
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.indicatorBasis.{u_1} (Ω : Type u_1) [Finite Ω] : Module.Basis Ω ℝ (Ω → ℝ)
def FABL.indicatorBasis.{u_1} (Ω : Type u_1) [Finite Ω] : Module.Basis Ω ℝ (Ω → ℝ)
O'Donnell, Definition 8.5: the indicator basis of the finite function space.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.indicatorBasis_apply.{u_1} {Ω : Type u_1} [Finite Ω] [DecidableEq Ω] (x y : Ω) : (FABL.indicatorBasis Ω) x y = if y = x then 1 else 0
theorem FABL.indicatorBasis_apply.{u_1} {Ω : Type u_1} [Finite Ω] [DecidableEq Ω] (x y : Ω) : (FABL.indicatorBasis Ω) x y = if y = x then 1 else 0
An indicator-basis vector is the corresponding point indicator.
Fact 8.6. The indicator functions are nonzero, span the function space,
and are pairwise orthogonal. Hence they form a basis and
\dim L^2(\Omega,\pi)=m,
\qquad
\dim L^2(\Omega^n,\pi^{\otimes n})=m^n.
Lean code for Lemma8.1.6●1 theorem
Associated Lean declarations
-
FABL.finrank_real_fun_eq_card[complete]
-
FABL.finrank_real_fun_eq_card[complete]
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.finrank_real_fun_eq_card.{u_1} (Ω : Type u_1) [Fintype Ω] : Module.finrank ℝ (Ω → ℝ) = Fintype.card Ω
theorem FABL.finrank_real_fun_eq_card.{u_1} (Ω : Type u_1) [Fintype Ω] : Module.finrank ℝ (Ω → ℝ) = Fintype.card Ω
O'Donnell, Fact 8.6: the real function space on `Ω` has dimension `|Ω|`.
-
FABL.FiniteFourierBasis[complete] -
FABL.FiniteFourierBasis.pmfInner_basis[complete]
Definition 8.7. A Fourier basis for L^2(\Omega,\pi) is an orthonormal
basis \phi_0,\ldots,\phi_{m-1} whose distinguished first vector is the
constant function \phi_0\equiv1.
Lean code for Definition8.1.7●2 declarations
Associated Lean declarations
-
FABL.FiniteFourierBasis[complete]
-
FABL.FiniteFourierBasis.pmfInner_basis[complete]
-
FABL.FiniteFourierBasis[complete] -
FABL.FiniteFourierBasis.pmfInner_basis[complete]
-
structuredefined in FABL/Chapter08/ProductFourierBases.leancomplete
structure FABL.FiniteFourierBasis.{u_1, u_2} (Ω : Type u_1) [Fintype Ω] [Nonempty Ω] (π : PMF Ω) (ι : Type u_2) [Fintype ι] [Nonempty ι] [DecidableEq ι] : Type (max u_1 u_2)
structure FABL.FiniteFourierBasis.{u_1, u_2} (Ω : Type u_1) [Fintype Ω] [Nonempty Ω] (π : PMF Ω) (ι : Type u_2) [Fintype ι] [Nonempty ι] [DecidableEq ι] : Type (max u_1 u_2)
O'Donnell, Definition 8.7: a single-site Fourier basis is an orthonormal basis whose distinguished zero-indexed vector is the constant-one function.
Fields
zeroIndex : ι
Index of the constant-one basis vector.
basis : Module.Basis ι ℝ (Ω → ℝ)
The underlying algebraic basis.
basis_zero : self.basis self.zeroIndex = fun x => 1
The zero-indexed basis vector is constant one.
orthonormal : ∀ (a b : ι), (FABL.pmfExpectation π fun x => self.basis a x * self.basis b x) = if a = b then 1 else 0
Orthonormality for the PMF-weighted inner product.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.FiniteFourierBasis.pmfInner_basis.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) (a b : ι) : FABL.pmfInner π (B.basis a) (B.basis b) = if a = b then 1 else 0
theorem FABL.FiniteFourierBasis.pmfInner_basis.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) (a b : ι) : FABL.pmfInner π (B.basis a) (B.basis b) = if a = b then 1 else 0
A Fourier basis vector has coefficient one against itself and zero against every other basis vector.
-
FABL.signSiteBasis[complete] -
FABL.signSiteFourierBasis[complete] -
FABL.signMultiIndexSupport[complete] -
FABL.signSiteFourierBasis_productFunction_eq_monomial[complete] -
FABL.signSiteFourierBasis_productBasis_eq_monomial[complete] -
FABL.signMultiIndexEquivFinset[complete] -
FABL.signSiteFourierBasis_fourierCoeff_eq_fourierCoeff[complete]
Example 8.8. For every n\ge1, the parity functions
(\chi_S)_{S\subseteq[n]} form a Fourier basis for
L^2(\{-1,1\}^n).
Lean code for Lemma8.1.8●7 declarations
Associated Lean declarations
-
FABL.signSiteBasis[complete]
-
FABL.signSiteFourierBasis[complete]
-
FABL.signMultiIndexSupport[complete]
-
FABL.signSiteFourierBasis_productFunction_eq_monomial[complete]
-
FABL.signSiteFourierBasis_productBasis_eq_monomial[complete]
-
FABL.signMultiIndexEquivFinset[complete]
-
FABL.signSiteFourierBasis_fourierCoeff_eq_fourierCoeff[complete]
-
FABL.signSiteBasis[complete] -
FABL.signSiteFourierBasis[complete] -
FABL.signMultiIndexSupport[complete] -
FABL.signSiteFourierBasis_productFunction_eq_monomial[complete] -
FABL.signSiteFourierBasis_productBasis_eq_monomial[complete] -
FABL.signMultiIndexEquivFinset[complete] -
FABL.signSiteFourierBasis_fourierCoeff_eq_fourierCoeff[complete]
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.signSiteBasis : Module.Basis (Fin 2) ℝ (FABL.Sign → ℝ)
def FABL.signSiteBasis : Module.Basis (Fin 2) ℝ (FABL.Sign → ℝ)
The single-site Fourier basis for a uniformly random sign.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.signSiteFourierBasis : FABL.FiniteFourierBasis FABL.Sign (FABL.uniformPMF FABL.Sign) (Fin 2)
def FABL.signSiteFourierBasis : FABL.FiniteFourierBasis FABL.Sign (FABL.uniformPMF FABL.Sign) (Fin 2)
O'Donnell, Example 8.8: the single-site Fourier basis for the uniform sign law.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.signMultiIndexSupport {n : ℕ} (a : FABL.MultiIndex n (Fin 2)) : Finset (Fin n)
def FABL.signMultiIndexSupport {n : ℕ} (a : FABL.MultiIndex n (Fin 2)) : Finset (Fin n)
The subset of coordinates where a binary multi-index is nonzero.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.signSiteFourierBasis_productFunction_eq_monomial {n : ℕ} (a : FABL.MultiIndex n (Fin 2)) (x : FABL.SignCube n) : FABL.signSiteFourierBasis.productFunction a x = FABL.monomial (FABL.signMultiIndexSupport a) x
theorem FABL.signSiteFourierBasis_productFunction_eq_monomial {n : ℕ} (a : FABL.MultiIndex n (Fin 2)) (x : FABL.SignCube n) : FABL.signSiteFourierBasis.productFunction a x = FABL.monomial (FABL.signMultiIndexSupport a) x
A binary-indexed product Fourier function is the usual sign-cube parity monomial.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.signSiteFourierBasis_productBasis_eq_monomial {n : ℕ} (a : FABL.MultiIndex n (Fin 2)) : (FABL.signSiteFourierBasis.productBasis n) a = FABL.monomial (FABL.signMultiIndexSupport a)
theorem FABL.signSiteFourierBasis_productBasis_eq_monomial {n : ℕ} (a : FABL.MultiIndex n (Fin 2)) : (FABL.signSiteFourierBasis.productBasis n) a = FABL.monomial (FABL.signMultiIndexSupport a)
Example 8.8 in product-basis form: binary product basis vectors are the parity functions.
-
defdefined in FABL/Chapter08/GeneralizedFourierFormulas.leancomplete
def FABL.signMultiIndexEquivFinset (n : ℕ) : FABL.MultiIndex n (Fin 2) ≃ Finset (Fin n)
def FABL.signMultiIndexEquivFinset (n : ℕ) : FABL.MultiIndex n (Fin 2) ≃ Finset (Fin n)
Binary multi-indices are equivalent to subsets through their nonzero supports.
-
theoremdefined in FABL/Chapter08/GeneralizedFourierFormulas.leancomplete
theorem FABL.signSiteFourierBasis_fourierCoeff_eq_fourierCoeff {n : ℕ} (f : FABL.SignCube n → ℝ) (a : FABL.MultiIndex n (Fin 2)) : FABL.signSiteFourierBasis.fourierCoeff f a = FABL.fourierCoeff f (FABL.signMultiIndexSupport a)
theorem FABL.signSiteFourierBasis_fourierCoeff_eq_fourierCoeff {n : ℕ} (f : FABL.SignCube n → ℝ) (a : FABL.MultiIndex n (Fin 2)) : FABL.signSiteFourierBasis.fourierCoeff f a = FABL.fourierCoeff f (FABL.signMultiIndexSupport a)
Product Fourier coefficients for the sign-site basis are exactly the existing subset-indexed Walsh coefficients.
-
FABL.pmfSqrtScaleLinearEquiv[complete] -
FABL.inner_pmfSqrtScaleLinearEquiv[complete] -
FABL.exists_finiteFourierBasis[complete]
Remark 8.9. A Fourier basis always exists: extend \{1\} to a basis
and apply Gram--Schmidt. It need not be unique; on one uniform bit both
\{1,\mathrm{id}\} and \{1,-\mathrm{id}\} are Fourier bases.
Lean code for Lemma8.1.9●3 declarations
Associated Lean declarations
-
FABL.pmfSqrtScaleLinearEquiv[complete]
-
FABL.inner_pmfSqrtScaleLinearEquiv[complete]
-
FABL.exists_finiteFourierBasis[complete]
-
FABL.pmfSqrtScaleLinearEquiv[complete] -
FABL.inner_pmfSqrtScaleLinearEquiv[complete] -
FABL.exists_finiteFourierBasis[complete]
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.pmfSqrtScaleLinearEquiv.{u_1} {Ω : Type u_1} [Fintype Ω] {π : PMF Ω} (hπ : FABL.PMFHasFullSupport π) : (Ω → ℝ) ≃ₗ[ℝ] EuclideanSpace ℝ Ω
def FABL.pmfSqrtScaleLinearEquiv.{u_1} {Ω : Type u_1} [Fintype Ω] {π : PMF Ω} (hπ : FABL.PMFHasFullSupport π) : (Ω → ℝ) ≃ₗ[ℝ] EuclideanSpace ℝ Ω
Multiplication by the square roots of the PMF masses identifies the weighted finite function space linearly with the standard Euclidean space.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.inner_pmfSqrtScaleLinearEquiv.{u_1} {Ω : Type u_1} [Fintype Ω] {π : PMF Ω} (hπ : FABL.PMFHasFullSupport π) (f g : Ω → ℝ) : inner ℝ ((FABL.pmfSqrtScaleLinearEquiv hπ) f) ((FABL.pmfSqrtScaleLinearEquiv hπ) g) = FABL.pmfInner π f g
theorem FABL.inner_pmfSqrtScaleLinearEquiv.{u_1} {Ω : Type u_1} [Fintype Ω] {π : PMF Ω} (hπ : FABL.PMFHasFullSupport π) (f g : Ω → ℝ) : inner ℝ ((FABL.pmfSqrtScaleLinearEquiv hπ) f) ((FABL.pmfSqrtScaleLinearEquiv hπ) g) = FABL.pmfInner π f g
Square-root scaling transports the PMF-weighted inner product to the standard Euclidean inner product.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.exists_finiteFourierBasis.{u_1} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] [DecidableEq Ω] {π : PMF Ω} (hπ : FABL.PMFHasFullSupport π) : Nonempty (FABL.FiniteFourierBasis Ω π Ω)
theorem FABL.exists_finiteFourierBasis.{u_1} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] [DecidableEq Ω] {π : PMF Ω} (hπ : FABL.PMFHasFullSupport π) : Nonempty (FABL.FiniteFourierBasis Ω π Ω)
O'Donnell, Remark 8.9: every finite full-support probability space has a Fourier basis containing the constant-one function.
-
FABL.threePointFourierFunction[complete] -
FABL.threePointBasis[complete] -
FABL.threePointFourierBasis[complete]
Example 8.10. On the uniform three-point space one Fourier basis is
\phi_0\equiv1 together with
\phi_1(a)=\sqrt2,
\quad \phi_1(b)=\phi_1(c)=-\frac{\sqrt2}{2},
\phi_2(a)=0,
\quad \phi_2(b)=\frac{\sqrt6}{2},
\quad \phi_2(c)=-\frac{\sqrt6}{2}.
Lean code for Lemma8.1.10●3 definitions
Associated Lean declarations
-
FABL.threePointFourierFunction[complete]
-
FABL.threePointBasis[complete]
-
FABL.threePointFourierBasis[complete]
-
FABL.threePointFourierFunction[complete] -
FABL.threePointBasis[complete] -
FABL.threePointFourierBasis[complete]
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.threePointFourierFunction (j : Fin 3) (x : FABL.ThreePoint) : ℝ
def FABL.threePointFourierFunction (j : Fin 3) (x : FABL.ThreePoint) : ℝ
Example 8.10's three explicit single-site Fourier functions.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.threePointBasis : Module.Basis (Fin 3) ℝ (FABL.ThreePoint → ℝ)
def FABL.threePointBasis : Module.Basis (Fin 3) ℝ (FABL.ThreePoint → ℝ)
The explicit Example 8.10 family as an algebraic basis.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.threePointFourierBasis : FABL.FiniteFourierBasis FABL.ThreePoint (FABL.uniformPMF FABL.ThreePoint) (Fin 3)
def FABL.threePointFourierBasis : FABL.FiniteFourierBasis FABL.ThreePoint (FABL.uniformPMF FABL.ThreePoint) (Fin 3)
O'Donnell, Example 8.10: a Fourier basis on the uniform three-point space.
-
FABL.MultiIndex[complete] -
FABL.multiIndexSupport[complete] -
FABL.multiIndexOrder[complete] -
FABL.BoundedMultiIndex[complete] -
FABL.boundedMultiIndexWeight[complete]
Definition 8.11. An n-dimensional multi-index is
\alpha\in\mathbb N^n. Write
\operatorname{supp}(\alpha)=\{i:\alpha_i\ne0\},
\qquad
\#\alpha=|\operatorname{supp}(\alpha)|,
\qquad
|\alpha|=\sum_{i=1}^n\alpha_i.
The notation \alpha\in\mathbb N^n_{<m} means
0\le\alpha_i<m for every i.
Lean code for Definition8.1.11●5 definitions
Associated Lean declarations
-
FABL.MultiIndex[complete]
-
FABL.multiIndexSupport[complete]
-
FABL.multiIndexOrder[complete]
-
FABL.BoundedMultiIndex[complete]
-
FABL.boundedMultiIndexWeight[complete]
-
FABL.MultiIndex[complete] -
FABL.multiIndexSupport[complete] -
FABL.multiIndexOrder[complete] -
FABL.BoundedMultiIndex[complete] -
FABL.boundedMultiIndexWeight[complete]
-
abbrevdefined in FABL/Chapter08/ProductFourierBases.leancomplete
abbrev FABL.MultiIndex.{u_1} (n : ℕ) (ι : Type u_1) : Type u_1
abbrev FABL.MultiIndex.{u_1} (n : ℕ) (ι : Type u_1) : Type u_1
O'Donnell, Definition 8.11: an `n`-dimensional multi-index with entries in `ι`.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.multiIndexSupport.{u_1} {n : ℕ} {ι : Type u_1} [DecidableEq ι] (zeroIndex : ι) (a : FABL.MultiIndex n ι) : Finset (Fin n)
def FABL.multiIndexSupport.{u_1} {n : ℕ} {ι : Type u_1} [DecidableEq ι] (zeroIndex : ι) (a : FABL.MultiIndex n ι) : Finset (Fin n)
The support of a multi-index relative to a distinguished zero index.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.multiIndexOrder.{u_1} {n : ℕ} {ι : Type u_1} [DecidableEq ι] (zeroIndex : ι) (a : FABL.MultiIndex n ι) : ℕ
def FABL.multiIndexOrder.{u_1} {n : ℕ} {ι : Type u_1} [DecidableEq ι] (zeroIndex : ι) (a : FABL.MultiIndex n ι) : ℕ
O'Donnell's `#α`, the number of nonzero coordinates in a multi-index.
-
abbrevdefined in FABL/Chapter08/ProductFourierBases.leancomplete
abbrev FABL.BoundedMultiIndex (n m : ℕ) : Type
abbrev FABL.BoundedMultiIndex (n m : ℕ) : Type
O'Donnell's bounded natural multi-indices `𝔼ⁿ_{<m}`. -
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.boundedMultiIndexWeight {n m : ℕ} (a : FABL.BoundedMultiIndex n m) : ℕ
def FABL.boundedMultiIndexWeight {n m : ℕ} (a : FABL.BoundedMultiIndex n m) : ℕ
O'Donnell's `|α|`, the sum of the entries of a bounded natural multi-index.
Definition 8.12. Given functions
\phi_0,\ldots,\phi_{m-1}\in L^2(\Omega,\pi) and
\alpha\in\mathbb N^n_{<m}, define
\phi_\alpha(x)=\prod_{i=1}^n\phi_{\alpha_i}(x_i).
Lean code for Definition8.1.12●1 definition
Associated Lean declarations
-
FABL.FiniteFourierBasis.productFunction[complete]
-
FABL.FiniteFourierBasis.productFunction[complete]
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.FiniteFourierBasis.productFunction.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (a : FABL.MultiIndex n ι) (x : Fin n → Ω) : ℝ
def FABL.FiniteFourierBasis.productFunction.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (a : FABL.MultiIndex n ι) (x : Fin n → Ω) : ℝ
O'Donnell, Definition 8.12: product of the single-site Fourier functions indexed by a multi-index.
Proposition 8.13. If \phi_0,\ldots,\phi_{m-1} is a Fourier basis of
L^2(\Omega,\pi), then
(\phi_\alpha)_{\alpha\in\mathbb N^n_{<m}} is a Fourier basis of
L^2(\Omega^n,\pi^{\otimes n}). The zero multi-index corresponds to the
constant function 1.
Lean code for Theorem8.1.13●4 declarations
Associated Lean declarations
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.FiniteFourierBasis.productFunction_orthonormal.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (a b : FABL.MultiIndex n ι) : (FABL.pmfExpectation (FABL.productProbabilityPMF π n) fun x => B.productFunction a x * B.productFunction b x) = if a = b then 1 else 0
theorem FABL.FiniteFourierBasis.productFunction_orthonormal.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (a b : FABL.MultiIndex n ι) : (FABL.pmfExpectation (FABL.productProbabilityPMF π n) fun x => B.productFunction a x * B.productFunction b x) = if a = b then 1 else 0
Proposition 8.13, orthonormality part: products of single-site Fourier functions are orthonormal under the product law.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.FiniteFourierBasis.productFunction_linearIndependent.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) (n : ℕ) : LinearIndependent ℝ B.productFunction
theorem FABL.FiniteFourierBasis.productFunction_linearIndependent.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) (n : ℕ) : LinearIndependent ℝ B.productFunction
An orthonormal finite family is linearly independent; this is the linear-independence step in Proposition 8.13.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.FiniteFourierBasis.productBasis.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) (n : ℕ) : Module.Basis (FABL.MultiIndex n ι) ℝ (FABL.ProductL2 Ω n)
def FABL.FiniteFourierBasis.productBasis.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) (n : ℕ) : Module.Basis (FABL.MultiIndex n ι) ℝ (FABL.ProductL2 Ω n)
O'Donnell, Proposition 8.13: the product functions form a basis of the full product function space.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.FiniteFourierBasis.productBasis_apply.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) (n : ℕ) (a : FABL.MultiIndex n ι) : (B.productBasis n) a = B.productFunction a
theorem FABL.FiniteFourierBasis.productBasis_apply.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) (n : ℕ) (a : FABL.MultiIndex n ι) : (B.productBasis n) a = B.productFunction a
The product basis evaluates to the defining product function.
-
FABL.FiniteFourierBasis.fourierCoeff[complete] -
FABL.FiniteFourierBasis.fourier_expansion[complete] -
FABL.FiniteFourierBasis.fourier_expansion_unique[complete]
Definition 8.14. Relative to a fixed product Fourier basis, every
f\in L^2(\Omega^n,\pi^{\otimes n}) has a unique expansion
f=\sum_{\alpha\in\mathbb N^n_{<m}}\widehat f(\alpha)\phi_\alpha,
\qquad
\widehat f(\alpha)=\langle f,\phi_\alpha\rangle.
Lean code for Definition8.1.14●3 declarations
Associated Lean declarations
-
FABL.FiniteFourierBasis.fourierCoeff[complete]
-
FABL.FiniteFourierBasis.fourier_expansion[complete]
-
FABL.FiniteFourierBasis.fourier_expansion_unique[complete]
-
FABL.FiniteFourierBasis.fourierCoeff[complete] -
FABL.FiniteFourierBasis.fourier_expansion[complete] -
FABL.FiniteFourierBasis.fourier_expansion_unique[complete]
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.FiniteFourierBasis.fourierCoeff.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (f : FABL.ProductL2 Ω n) (a : FABL.MultiIndex n ι) : ℝ
def FABL.FiniteFourierBasis.fourierCoeff.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (f : FABL.ProductL2 Ω n) (a : FABL.MultiIndex n ι) : ℝ
O'Donnell, Definition 8.14: Fourier coefficient on a product-basis multi-index.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.FiniteFourierBasis.fourier_expansion.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (f : FABL.ProductL2 Ω n) (x : Fin n → Ω) : f x = ∑ a, B.fourierCoeff f a * B.productFunction a x
theorem FABL.FiniteFourierBasis.fourier_expansion.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (f : FABL.ProductL2 Ω n) (x : Fin n → Ω) : f x = ∑ a, B.fourierCoeff f a * B.productFunction a x
O'Donnell, Definition 8.14: every function has its product Fourier expansion.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.FiniteFourierBasis.fourier_expansion_unique.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (f : FABL.ProductL2 Ω n) (c : FABL.MultiIndex n ι → ℝ) (hc : ∀ (x : Fin n → Ω), f x = ∑ a, c a * B.productFunction a x) : c = B.fourierCoeff f
theorem FABL.FiniteFourierBasis.fourier_expansion_unique.{u_1, u_2} {Ω : Type u_1} [Fintype Ω] [Nonempty Ω] {π : PMF Ω} {ι : Type u_2} [Fintype ι] [Nonempty ι] [DecidableEq ι] (B : FABL.FiniteFourierBasis Ω π ι) {n : ℕ} (f : FABL.ProductL2 Ω n) (c : FABL.MultiIndex n ι → ℝ) (hc : ∀ (x : Fin n → Ω), f x = ∑ a, c a * B.productFunction a x) : c = B.fourierCoeff f
The coefficients in the product Fourier expansion are unique.
-
FABL.threePointCIndicator[complete] -
FABL.threePointCIndicatorCoeff[complete] -
FABL.threePointBothCIndicator[complete] -
FABL.threePointBothCIndicator_fourier_expansion[complete]
Example 8.15. With the basis of Example 8.10, let
f:\{a,b,c\}^2\to\{0,1\} be 1 exactly at (c,c). Then
\begin{aligned}
f={}&\frac19-\frac{\sqrt2}{18}\phi_{(1,0)}
-\frac{\sqrt6}{18}\phi_{(2,0)}
-\frac{\sqrt2}{18}\phi_{(0,1)}
-\frac{\sqrt6}{18}\phi_{(0,2)}\\
&+\frac1{18}\phi_{(1,1)}
+\frac{\sqrt{12}}{36}\phi_{(2,1)}
+\frac{\sqrt{12}}{36}\phi_{(1,2)}
+\frac16\phi_{(2,2)}.
\end{aligned}
Lean code for Lemma8.1.15●4 declarations
Associated Lean declarations
-
FABL.threePointCIndicator[complete]
-
FABL.threePointCIndicatorCoeff[complete]
-
FABL.threePointBothCIndicator[complete]
-
FABL.threePointBothCIndicator_fourier_expansion[complete]
-
FABL.threePointCIndicator[complete] -
FABL.threePointCIndicatorCoeff[complete] -
FABL.threePointBothCIndicator[complete] -
FABL.threePointBothCIndicator_fourier_expansion[complete]
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.threePointCIndicator (x : FABL.ThreePoint) : ℝ
def FABL.threePointCIndicator (x : FABL.ThreePoint) : ℝ
Indicator of the point `c` in the uniform three-point space.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.threePointCIndicatorCoeff (j : Fin 3) : ℝ
def FABL.threePointCIndicatorCoeff (j : Fin 3) : ℝ
The one-site Fourier coefficients of the indicator of `c`.
-
defdefined in FABL/Chapter08/ProductFourierBases.leancomplete
def FABL.threePointBothCIndicator (x : Fin 2 → FABL.ThreePoint) : ℝ
def FABL.threePointBothCIndicator (x : Fin 2 → FABL.ThreePoint) : ℝ
Example 8.15's function: one exactly when both inputs are `c`.
-
theoremdefined in FABL/Chapter08/ProductFourierBases.leancomplete
theorem FABL.threePointBothCIndicator_fourier_expansion (x : Fin 2 → FABL.ThreePoint) : FABL.threePointBothCIndicator x = ∑ a, FABL.threePointCIndicatorCoeff (a 0) * FABL.threePointCIndicatorCoeff (a 1) * FABL.threePointFourierBasis.productFunction a x
theorem FABL.threePointBothCIndicator_fourier_expansion (x : Fin 2 → FABL.ThreePoint) : FABL.threePointBothCIndicator x = ∑ a, FABL.threePointCIndicatorCoeff (a 0) * FABL.threePointCIndicatorCoeff (a 1) * FABL.threePointFourierBasis.productFunction a x
Exercise 8.5: the exact Fourier expansion asserted in Example 8.15.