8.5. Abelian groups
-
FABL.AbelianL2[complete] -
FABL.complexUniformInner[complete] -
FABL.complexMean[complete] -
FABL.complexCovariance[complete] -
FABL.complexVariance[complete] -
FABL.complexUniformInner_eq_expect[complete] -
FABL.complexUniformInner_self_eq_expect_absSq[complete]
Definition 8.51. Let G be a finite abelian group. The complex function
space L^2(G^n) uses the uniform law and Hermitian inner product
\langle f,g\rangle
=\mathbb E_{x\sim G^n}[f(x)\overline{g(x)}].
Lean code for Definition8.5.1●7 declarations
Associated Lean declarations
-
FABL.AbelianL2[complete]
-
FABL.complexUniformInner[complete]
-
FABL.complexMean[complete]
-
FABL.complexCovariance[complete]
-
FABL.complexVariance[complete]
-
FABL.complexUniformInner_eq_expect[complete]
-
FABL.complexUniformInner_self_eq_expect_absSq[complete]
-
FABL.AbelianL2[complete] -
FABL.complexUniformInner[complete] -
FABL.complexMean[complete] -
FABL.complexCovariance[complete] -
FABL.complexVariance[complete] -
FABL.complexUniformInner_eq_expect[complete] -
FABL.complexUniformInner_self_eq_expect_absSq[complete]
-
abbrevdefined in FABL/Chapter08/AbelianGroups.leancomplete
abbrev FABL.AbelianL2.{u_1} (G : Type u_1) (n : ℕ) : Type u_1
abbrev FABL.AbelianL2.{u_1} (G : Type u_1) (n : ℕ) : Type u_1
O'Donnell, Definition 8.51: the complex function space on the `n`-fold power of a finite abelian group. Allowing `n = 0` is a harmless generalization.
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.complexUniformInner.{u_1} {Ω : Type u_1} [Fintype Ω] (f g : Ω → ℂ) : ℂ
def FABL.complexUniformInner.{u_1} {Ω : Type u_1} [Fintype Ω] (f g : Ω → ℂ) : ℂ
The normalized complex inner product `⟨f,g⟩ = ᵓ[conj f · g]` on a finite type.
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.complexMean.{u_1} {Ω : Type u_1} [Fintype Ω] (f : Ω → ℂ) : ℂ
def FABL.complexMean.{u_1} {Ω : Type u_1} [Fintype Ω] (f : Ω → ℂ) : ℂ
The uniform complex expectation.
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.complexCovariance.{u_1} {Ω : Type u_1} [Fintype Ω] (f g : Ω → ℂ) : ℂ
def FABL.complexCovariance.{u_1} {Ω : Type u_1} [Fintype Ω] (f g : Ω → ℂ) : ℂ
Complex covariance with conjugation in the first argument.
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.complexVariance.{u_1} {Ω : Type u_1} [Fintype Ω] (f : Ω → ℂ) : ℂ
def FABL.complexVariance.{u_1} {Ω : Type u_1} [Fintype Ω] (f : Ω → ℂ) : ℂ
Complex variance, represented in the scalar field as `⟨f-ᵓf,f-ᵓf⟩`.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.complexUniformInner_eq_expect.{u_1} {Ω : Type u_1} [Fintype Ω] (f g : Ω → ℂ) : FABL.complexUniformInner f g = Finset.univ.expect fun x => (starRingEnd ℂ) (f x) * g x
theorem FABL.complexUniformInner_eq_expect.{u_1} {Ω : Type u_1} [Fintype Ω] (f g : Ω → ℂ) : FABL.complexUniformInner f g = Finset.univ.expect fun x => (starRingEnd ℂ) (f x) * g x
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.complexUniformInner_self_eq_expect_absSq.{u_1} {Ω : Type u_1} [Fintype Ω] (f : Ω → ℂ) : FABL.complexUniformInner f f = Finset.univ.expect fun x => (starRingEnd ℂ) (f x) * f x
theorem FABL.complexUniformInner_self_eq_expect_absSq.{u_1} {Ω : Type u_1} [Fintype Ω] (f : Ω → ℂ) : FABL.complexUniformInner f f = Finset.univ.expect fun x => (starRingEnd ℂ) (f x) * f x
Exercise 8.32: `⟨f,f⟩` is the uniform second moment `𝔼[|f|²]`.
-
FABL.AbelianCharacter[complete] -
FABL.AbelianDual[complete]
Definition 8.52. A character is a homomorphism
\chi:G\to\mathbb C^\times, so
\chi(x+y)=\chi(x)\chi(y).
Since G is finite, every value is a root of unity and
|\chi(x)|=1.
Lean code for Definition8.5.2●2 definitions
Associated Lean declarations
-
FABL.AbelianCharacter[complete]
-
FABL.AbelianDual[complete]
-
FABL.AbelianCharacter[complete] -
FABL.AbelianDual[complete]
-
abbrevdefined in FABL/Chapter08/AbelianGroups.leancomplete
abbrev FABL.AbelianCharacter.{u_1} (G : Type u_1) [AddCommGroup G] : Type u_1
abbrev FABL.AbelianCharacter.{u_1} (G : Type u_1) [AddCommGroup G] : Type u_1
O'Donnell, Definition 8.52: a complex character of a finite abelian group.
-
abbrevdefined in FABL/Chapter08/AbelianGroups.leancomplete
abbrev FABL.AbelianDual.{u_1} (G : Type u_1) [AddCommGroup G] : Type u_1
abbrev FABL.AbelianDual.{u_1} (G : Type u_1) [AddCommGroup G] : Type u_1
The dual group of a finite abelian group.
-
FABL.characterConj[complete] -
FABL.characterMulConj[complete]
Fact 8.53. If \chi and \phi are characters, then
\overline\chi and the pointwise product \phi\chi are characters.
Lean code for Lemma8.5.3●2 definitions
Associated Lean declarations
-
FABL.characterConj[complete]
-
FABL.characterMulConj[complete]
-
FABL.characterConj[complete] -
FABL.characterMulConj[complete]
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.characterConj.{u_1} {G : Type u_1} [AddCommGroup G] (χ : FABL.AbelianCharacter G) : FABL.AbelianCharacter G
def FABL.characterConj.{u_1} {G : Type u_1} [AddCommGroup G] (χ : FABL.AbelianCharacter G) : FABL.AbelianCharacter G
O'Donnell, Fact 8.53: complex conjugation of a character is its inverse character.
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.characterMulConj.{u_1} {G : Type u_1} [AddCommGroup G] (φ χ : FABL.AbelianCharacter G) : FABL.AbelianCharacter G
def FABL.characterMulConj.{u_1} {G : Type u_1} [AddCommGroup G] (φ χ : FABL.AbelianCharacter G) : FABL.AbelianCharacter G
O'Donnell, Fact 8.53: the pointwise product of a character with a conjugate character is a character.
-
FABL.character_eq_zero_or_expect_eq_zero[complete] -
FABL.expect_character_eq_ite[complete]
Proposition 8.54. Every character \chi is either identically 1 or
satisfies
\mathbb E_{x\sim G}[\chi(x)]=0.
Lean code for Theorem8.5.4●2 theorems
Associated Lean declarations
-
FABL.character_eq_zero_or_expect_eq_zero[complete]
-
FABL.expect_character_eq_ite[complete]
-
FABL.character_eq_zero_or_expect_eq_zero[complete] -
FABL.expect_character_eq_ite[complete]
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.character_eq_zero_or_expect_eq_zero.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (χ : FABL.AbelianCharacter G) : χ = 0 ∨ (Finset.univ.expect fun x => χ x) = 0
theorem FABL.character_eq_zero_or_expect_eq_zero.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (χ : FABL.AbelianCharacter G) : χ = 0 ∨ (Finset.univ.expect fun x => χ x) = 0
O'Donnell, Proposition 8.54: a character is trivial or has uniform expectation zero.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.expect_character_eq_ite.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (χ : FABL.AbelianCharacter G) : (Finset.univ.expect fun x => χ x) = if χ = 0 then 1 else 0
theorem FABL.expect_character_eq_ite.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (χ : FABL.AbelianCharacter G) : (Finset.univ.expect fun x => χ x) = if χ = 0 then 1 else 0
The exact expectation formula strengthening Proposition 8.54.
-
FABL.characters_orthonormal[complete] -
FABL.card_abelianCharacter_le[complete] -
FABL.card_abelianCharacter[complete] -
FABL.abelianFourierBasis[complete]
Proposition 8.55. All characters of G are orthonormal. Consequently
there are at most |G|=\dim L^2(G) characters.
Lean code for Theorem8.5.5●4 declarations
Associated Lean declarations
-
FABL.characters_orthonormal[complete]
-
FABL.card_abelianCharacter_le[complete]
-
FABL.card_abelianCharacter[complete]
-
FABL.abelianFourierBasis[complete]
-
FABL.characters_orthonormal[complete] -
FABL.card_abelianCharacter_le[complete] -
FABL.card_abelianCharacter[complete] -
FABL.abelianFourierBasis[complete]
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.characters_orthonormal.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (φ χ : FABL.AbelianCharacter G) : FABL.complexUniformInner ⇑φ ⇑χ = if φ = χ then 1 else 0
theorem FABL.characters_orthonormal.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (φ χ : FABL.AbelianCharacter G) : FABL.complexUniformInner ⇑φ ⇑χ = if φ = χ then 1 else 0
O'Donnell, Proposition 8.55: all complex characters are orthonormal.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.card_abelianCharacter_le.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] : Fintype.card (FABL.AbelianCharacter G) ≤ Fintype.card G
theorem FABL.card_abelianCharacter_le.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] : Fintype.card (FABL.AbelianCharacter G) ≤ Fintype.card G
The consequence in Proposition 8.55: there are at most `|G|` characters.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.card_abelianCharacter.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] : Fintype.card (FABL.AbelianCharacter G) = Fintype.card G
theorem FABL.card_abelianCharacter.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] : Fintype.card (FABL.AbelianCharacter G) = Fintype.card G
Exercise 8.35(a), in Mathlib's stronger classification-free form: a finite abelian group has exactly `|G|` complex characters.
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.abelianFourierBasis.{u_1} (G : Type u_1) [AddCommGroup G] [Finite G] : Module.Basis (FABL.AbelianCharacter G) ℂ (G → ℂ)
def FABL.abelianFourierBasis.{u_1} (G : Type u_1) [AddCommGroup G] [Finite G] : Module.Basis (FABL.AbelianCharacter G) ℂ (G → ℂ)
The canonical character-indexed Fourier basis of `L²(G)`.
-
FABL.zmodCharacter[complete] -
FABL.zmodCharacter_injective[complete] -
FABL.zmodCharacter_intCast[complete] -
FABL.zmodFourierBasis[complete]
Definition 8.56. Fix m\ge2 and
\omega=\exp(2\pi i/m). For 0\le j<m, define a character of
\mathbb Z_m by
\chi_j(x)=\omega^{jx}.
These m characters are distinct and form a Fourier basis of
L^2(\mathbb Z_m).
Lean code for Definition8.5.6●4 declarations
Associated Lean declarations
-
FABL.zmodCharacter[complete]
-
FABL.zmodCharacter_injective[complete]
-
FABL.zmodCharacter_intCast[complete]
-
FABL.zmodFourierBasis[complete]
-
FABL.zmodCharacter[complete] -
FABL.zmodCharacter_injective[complete] -
FABL.zmodCharacter_intCast[complete] -
FABL.zmodFourierBasis[complete]
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.zmodCharacter (m : ℕ) [NeZero m] (j : ZMod m) : FABL.AbelianCharacter (ZMod m)
def FABL.zmodCharacter (m : ℕ) [NeZero m] (j : ZMod m) : FABL.AbelianCharacter (ZMod m)
O'Donnell, Definition 8.56: the standard character of `ZMod m` indexed by `j`. Mathlib's `zmodAddEquiv` packages the root-of-unity construction and its injectivity.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.zmodCharacter_injective (m : ℕ) [NeZero m] : Function.Injective (FABL.zmodCharacter m)
theorem FABL.zmodCharacter_injective (m : ℕ) [NeZero m] : Function.Injective (FABL.zmodCharacter m)
Definition 8.56: distinct cyclic indices give distinct characters.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.zmodCharacter_intCast (m : ℕ) [NeZero m] (j x : ℤ) : (FABL.zmodCharacter m ↑j) ↑x = Complex.exp (2 * ↑Real.pi * (↑↑j * ↑↑x / ↑↑m) * Complex.I)
theorem FABL.zmodCharacter_intCast (m : ℕ) [NeZero m] (j x : ℤ) : (FABL.zmodCharacter m ↑j) ↑x = Complex.exp (2 * ↑Real.pi * (↑↑j * ↑↑x / ↑↑m) * Complex.I)
Definition 8.56 in exponential form on integer representatives.
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.zmodFourierBasis (m : ℕ) [NeZero m] : Module.Basis (ZMod m) ℂ (ZMod m → ℂ)
def FABL.zmodFourierBasis (m : ℕ) [NeZero m] : Module.Basis (ZMod m) ℂ (ZMod m → ℂ)
The cyclic characters, indexed by `ZMod m`, form the Fourier basis of `L²(ZMod m)`.
-
FABL.zmodProductCharacter[complete] -
FABL.zmodProductCharacterHom[complete] -
FABL.zmodProductCharacter_apply_single[complete] -
FABL.zmodProductCharacter_injective[complete] -
FABL.zmodProductCharacter_bijective[complete] -
FABL.zmodProductFourierBasis[complete]
Definition 8.57. For \alpha\in\mathbb N^n_{<m}, define
\chi_\alpha(x)=\prod_{j=1}^n\chi_{\alpha_j}(x_j).
These are all the characters of \mathbb Z_m^n and form its complex
Fourier basis.
Lean code for Definition8.5.7●6 declarations
Associated Lean declarations
-
FABL.zmodProductCharacter[complete]
-
FABL.zmodProductCharacterHom[complete]
-
FABL.zmodProductCharacter_apply_single[complete]
-
FABL.zmodProductCharacter_injective[complete]
-
FABL.zmodProductCharacter_bijective[complete]
-
FABL.zmodProductFourierBasis[complete]
-
FABL.zmodProductCharacter[complete] -
FABL.zmodProductCharacterHom[complete] -
FABL.zmodProductCharacter_apply_single[complete] -
FABL.zmodProductCharacter_injective[complete] -
FABL.zmodProductCharacter_bijective[complete] -
FABL.zmodProductFourierBasis[complete]
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.zmodProductCharacter (m n : ℕ) [NeZero m] (α : Fin n → ZMod m) : FABL.AbelianCharacter (Fin n → ZMod m)
def FABL.zmodProductCharacter (m n : ℕ) [NeZero m] (α : Fin n → ZMod m) : FABL.AbelianCharacter (Fin n → ZMod m)
O'Donnell, Definition 8.57: the product character of `(ZMod m)ⁿ` indexed by `α`.
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.zmodProductCharacterHom (m n : ℕ) [NeZero m] : (Fin n → ZMod m) →+ FABL.AbelianCharacter (Fin n → ZMod m)
def FABL.zmodProductCharacterHom (m n : ℕ) [NeZero m] : (Fin n → ZMod m) →+ FABL.AbelianCharacter (Fin n → ZMod m)
The product-character indexing is an additive homomorphism; addition in the character group is pointwise multiplication.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.zmodProductCharacter_apply_single (m n : ℕ) [NeZero m] (α : Fin n → ZMod m) (i : Fin n) (y : ZMod m) : (FABL.zmodProductCharacter m n α) (Pi.single i y) = (FABL.zmodCharacter m (α i)) y
theorem FABL.zmodProductCharacter_apply_single (m n : ℕ) [NeZero m] (α : Fin n → ZMod m) (i : Fin n) (y : ZMod m) : (FABL.zmodProductCharacter m n α) (Pi.single i y) = (FABL.zmodCharacter m (α i)) y
Evaluation on a one-coordinate vector recovers the corresponding cyclic character.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.zmodProductCharacter_injective (m n : ℕ) [NeZero m] : Function.Injective (FABL.zmodProductCharacter m n)
theorem FABL.zmodProductCharacter_injective (m n : ℕ) [NeZero m] : Function.Injective (FABL.zmodProductCharacter m n)
Definition 8.57: distinct multi-indices give distinct product characters.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.zmodProductCharacter_bijective (m n : ℕ) [NeZero m] : Function.Bijective (FABL.zmodProductCharacter m n)
theorem FABL.zmodProductCharacter_bijective (m n : ℕ) [NeZero m] : Function.Bijective (FABL.zmodProductCharacter m n)
Every character of `(ZMod m)ⁿ` is a unique product character.
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.zmodProductFourierBasis (m n : ℕ) [NeZero m] : Module.Basis (Fin n → ZMod m) ℂ ((Fin n → ZMod m) → ℂ)
def FABL.zmodProductFourierBasis (m n : ℕ) [NeZero m] : Module.Basis (Fin n → ZMod m) ℂ ((Fin n → ZMod m) → ℂ)
Definition 8.57: the product characters form the Fourier basis of `L²((ZMod m)ⁿ)`.
-
FABL.zmodProductCharacter_add[complete] -
FABL.zmodProductCharacter_neg[complete] -
FABL.zmodProductCharacterAddEquiv[complete]
Fact 8.58. The characters form the dual group under pointwise
multiplication:
\chi_\alpha\chi_\beta=\chi_{\alpha+\beta},
\qquad
\chi_\alpha^{-1}=\overline{\chi_\alpha}=\chi_{-\alpha}.
Lean code for Lemma8.5.8●3 declarations
Associated Lean declarations
-
FABL.zmodProductCharacter_add[complete]
-
FABL.zmodProductCharacter_neg[complete]
-
FABL.zmodProductCharacterAddEquiv[complete]
-
FABL.zmodProductCharacter_add[complete] -
FABL.zmodProductCharacter_neg[complete] -
FABL.zmodProductCharacterAddEquiv[complete]
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.zmodProductCharacter_add (m n : ℕ) [NeZero m] (α β : Fin n → ZMod m) : FABL.zmodProductCharacter m n (α + β) = FABL.zmodProductCharacter m n α * FABL.zmodProductCharacter m n β
theorem FABL.zmodProductCharacter_add (m n : ℕ) [NeZero m] (α β : Fin n → ZMod m) : FABL.zmodProductCharacter m n (α + β) = FABL.zmodProductCharacter m n α * FABL.zmodProductCharacter m n β
O'Donnell, Fact 8.58: multiplication of product characters adds their indices.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.zmodProductCharacter_neg (m n : ℕ) [NeZero m] (α : Fin n → ZMod m) : FABL.zmodProductCharacter m n (-α) = (FABL.zmodProductCharacter m n α)⁻¹
theorem FABL.zmodProductCharacter_neg (m n : ℕ) [NeZero m] (α : Fin n → ZMod m) : FABL.zmodProductCharacter m n (-α) = (FABL.zmodProductCharacter m n α)⁻¹
O'Donnell, Fact 8.58: conjugation/inversion negates a product-character index.
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.zmodProductCharacterAddEquiv (m n : ℕ) [NeZero m] : (Fin n → ZMod m) ≃+ FABL.AbelianDual (Fin n → ZMod m)
def FABL.zmodProductCharacterAddEquiv (m n : ℕ) [NeZero m] : (Fin n → ZMod m) ≃+ FABL.AbelianDual (Fin n → ZMod m)
Exercise 8.35 and Fact 8.58 for `(ZMod m)ⁿ`: product characters identify the group with its dual group.
-
FABL.abelianConvolution[complete] -
FABL.abelianConvolution_apply[complete] -
FABL.abelianConvolution_apply_swap[complete]
Definition 8.59. For f,g\in L^2(G), normalized convolution is
(f*g)(x)
=\mathbb E_{y\sim G}[f(y)g(x-y)]
=\mathbb E_{y\sim G}[f(x-y)g(y)].
Lean code for Definition8.5.9●3 declarations
Associated Lean declarations
-
FABL.abelianConvolution[complete]
-
FABL.abelianConvolution_apply[complete]
-
FABL.abelianConvolution_apply_swap[complete]
-
FABL.abelianConvolution[complete] -
FABL.abelianConvolution_apply[complete] -
FABL.abelianConvolution_apply_swap[complete]
-
defdefined in FABL/Chapter08/AbelianGroups.leancomplete
def FABL.abelianConvolution.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (f g : G → ℂ) : G → ℂ
def FABL.abelianConvolution.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (f g : G → ℂ) : G → ℂ
O'Donnell, Definition 8.59: normalized convolution on a finite abelian group. The unnormalized sum is Mathlib's `DiscreteConvolution.addConvolution`.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.abelianConvolution_apply.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (f g : G → ℂ) (x : G) : FABL.abelianConvolution f g x = Finset.univ.expect fun y => f y * g (x - y)
theorem FABL.abelianConvolution_apply.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (f g : G → ℂ) (x : G) : FABL.abelianConvolution f g x = Finset.univ.expect fun y => f y * g (x - y)
The expectation formula in Definition 8.59.
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.abelianConvolution_apply_swap.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (f g : G → ℂ) (x : G) : FABL.abelianConvolution f g x = Finset.univ.expect fun y => f (x - y) * g y
theorem FABL.abelianConvolution_apply_swap.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (f g : G → ℂ) (x : G) : FABL.abelianConvolution f g x = Finset.univ.expect fun y => f (x - y) * g y
The second expectation formula in Definition 8.59.
Theorem 8.60. Fourier transformation diagonalizes normalized convolution:
\widehat{f*g}(\alpha)
=\widehat f(\alpha)\widehat g(\alpha).
Lean code for Theorem8.5.10●1 theorem
Associated Lean declarations
-
FABL.abelianFourierCoeff_convolution[complete]
-
FABL.abelianFourierCoeff_convolution[complete]
-
theoremdefined in FABL/Chapter08/AbelianGroups.leancomplete
theorem FABL.abelianFourierCoeff_convolution.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (f g : G → ℂ) (χ : FABL.AbelianCharacter G) : FABL.abelianFourierCoeff (FABL.abelianConvolution f g) χ = FABL.abelianFourierCoeff f χ * FABL.abelianFourierCoeff g χ
theorem FABL.abelianFourierCoeff_convolution.{u_1} {G : Type u_1} [AddCommGroup G] [Fintype G] (f g : G → ℂ) (χ : FABL.AbelianCharacter G) : FABL.abelianFourierCoeff (FABL.abelianConvolution f g) χ = FABL.abelianFourierCoeff f χ * FABL.abelianFourierCoeff g χ
O'Donnell, Theorem 8.60 and Exercise 8.36: normalized convolution becomes pointwise multiplication under the finite-abelian Fourier transform.