Analysis of Boolean Functions in Lean

8.1. Fourier bases for product spaces🔗

Definition8.1.1
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Lemma 8.1.2
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0
Used by 9
Reverse dependency previews
Preview
Lemma 8.1.2
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.17 declarations
  • defdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    theorem FABL.productProbabilityPMF_hasFullSupport.{u_1} {Ω : Type u_1}
      [Fintype Ω] {π : PMF Ω} ( : FABL.PMFHasFullSupport π) (n : ) :
      FABL.PMFHasFullSupport (FABL.productProbabilityPMF π n)
    theorem FABL.productProbabilityPMF_hasFullSupport.{u_1}
      {Ω : Type u_1} [Fintype Ω] {π : PMF Ω}
      ( : 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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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)`. 
Lemma8.1.2
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 1L∃∀N

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.22 definitions
  • inductive(3 constructors)defined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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. 
    FABL.ThreePoint.a : FABL.ThreePoint
    FABL.ThreePoint.b : FABL.ThreePoint
    FABL.ThreePoint.c : FABL.ThreePoint
  • defdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    def FABL.finThreePointEquiv : Fin 3  FABL.ThreePoint
    def FABL.finThreePointEquiv :
      Fin 3  FABL.ThreePoint
    Explicit enumeration of the three-point space. 
Definition8.1.3
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 0L∃∀N

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.31 definition
  • defdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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. 
Definition8.1.4
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 1L∃∀N

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.42 definitions
  • defdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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.lean
    complete
    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)`. 
Definition8.1.5
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 1L∃∀N

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.52 declarations
  • defdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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.lean
    complete
    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. 
Lemma8.1.6
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 8.1.7
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.61 theorem
  • theoremdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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 `|Ω|`. 
Definition8.1.7
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 8.1.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 5
Reverse dependency previews
Preview
Lemma 8.1.8
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.72 declarations
  • structure(4 fields)defined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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. 
    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.lean
    complete
    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. 
Lemma8.1.8
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Theorem 1.3.3
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0L∃∀N

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.87 declarations
  • defdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Lemma8.1.9
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 0L∃∀N

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.93 declarations
  • defdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    def FABL.pmfSqrtScaleLinearEquiv.{u_1} {Ω : Type u_1} [Fintype Ω]
      {π : PMF Ω} ( : FABL.PMFHasFullSupport π) :
      (Ω  ) ≃ₗ[] EuclideanSpace  Ω
    def FABL.pmfSqrtScaleLinearEquiv.{u_1}
      {Ω : Type u_1} [Fintype Ω] {π : PMF Ω}
      ( : 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.lean
    complete
    theorem FABL.inner_pmfSqrtScaleLinearEquiv.{u_1} {Ω : Type u_1} [Fintype Ω]
      {π : PMF Ω} ( : FABL.PMFHasFullSupport π) (f g : Ω  ) :
      inner  ((FABL.pmfSqrtScaleLinearEquiv ) f)
          ((FABL.pmfSqrtScaleLinearEquiv ) g) =
        FABL.pmfInner π f g
    theorem FABL.inner_pmfSqrtScaleLinearEquiv.{u_1}
      {Ω : Type u_1} [Fintype Ω] {π : PMF Ω}
      ( : FABL.PMFHasFullSupport π)
      (f g : Ω  ) :
      inner 
          ((FABL.pmfSqrtScaleLinearEquiv )
            f)
          ((FABL.pmfSqrtScaleLinearEquiv )
            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.lean
    complete
    theorem FABL.exists_finiteFourierBasis.{u_1} {Ω : Type u_1} [Fintype Ω]
      [Nonempty Ω] [DecidableEq Ω] {π : PMF Ω}
      ( : FABL.PMFHasFullSupport π) :
      Nonempty (FABL.FiniteFourierBasis Ω π Ω)
    theorem FABL.exists_finiteFourierBasis.{u_1}
      {Ω : Type u_1} [Fintype Ω] [Nonempty Ω]
      [DecidableEq Ω] {π : PMF Ω}
      ( : 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. 
Lemma8.1.10
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Lemma 8.1.2
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Lemma 8.1.15
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.103 definitions
  • defdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition8.1.11
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0used by 1L∃∀N

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.115 definitions
  • abbrevdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition8.1.12
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 1L∃∀N

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.121 definition
  • defdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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. 
Theorem8.1.13
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 3
Statement dependency previews
Preview
Lemma 8.1.6
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Definition 8.1.14
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.134 declarations
  • theoremdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition8.1.14
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 6
Reverse dependency previews
Preview
Lemma 8.1.15
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.143 declarations
  • defdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Lemma8.1.15
Group: Chapter 8: Generalized domains (128)
Group member previews
Preview
Definition 8.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Lemma 8.1.10
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 4
Reverse dependency previews
Preview
Lemma 8.2.10
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

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.154 declarations
  • defdefined in FABL/Chapter08/ProductFourierBases.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.