Discrete Convolution #
Discrete convolution over monoids: (f ⋆[L] g) x is the sum of L (f a) (g b) over all
pairs (a, b) with a * b = x, that is, over mulFiber x. Additive monoids are also
supported.
Design #
Uses a bilinear map L : E →ₗ[S] E' →ₗ[S] F to combine values, following
MeasureTheory.convolution.
The index monoid M can be non-commutative (group algebras R[G] with non-abelian G).
@[to_additive] generates multiplicative and additive versions from a single definition.
The mul/add distinction refers to the index monoid M: multiplicative sums over
mulFiber x = {(a,b) | a * b = x}, additive sums over addFiber x = {(a,b) | a + b = x}.
Main Definitions #
mulFiber x: the fiber of multiplication atx, all pairs(a, b)witha * b = x.convolution L f g: the discrete convolution(f ⋆[L] g) x = ∑' ab : mulFiber x, L (f ab.1.1) (g ab.1.2).ringConvolution f g: convolution using multiplication to combine the values offandg.ConvolutionExistsAt L f g x: the family indexed bymulFiber xis summable.ConvolutionExists L f g:ConvolutionExistsAt L f g xholds for everyx.
Main Results #
single_convolution,convolution_single: identity element (Pi.single 1 ewhereL eis the identity map)ConvolutionExists.distrib_add,ConvolutionExists.add_distrib: distributivity over additionConvolutionExistsAt.smul_convolution,ConvolutionExistsAt.convolution_smul: scalar multiplicationconvolution_comm: commutativity for symmetric bilinear maps over commutative monoidsconvolution_eq_sum_mulAntidiagonal: finite-sum formula when the index monoid hasFinset.HasMulAntidiagonalsingle_ringConvolution,ringConvolution_single: identity laws for multiplication convolutionringConvolution_add,add_ringConvolution: distributivity over additionsmul_ringConvolution,ringConvolution_smul: external scalar multiplicationringConvolution_comm: commutativity when both the indices and values are commutative
Notation #
| Notation | Operation |
|---|---|
f ⋆[L] g | ∑' ab : mulFiber x, L (f ab.1.1) (g ab.1.2) |
f ⋆₊[L] g | ∑' ab : addFiber x, L (f ab.1.1) (g ab.1.2) |
f ⋆ᵣ g | ringConvolution f g |
f ⋆ᵣ₊ g | addRingConvolution f g |
Precedence design: f:68 and g:67 gives right associativity (f ⋆ g ⋆ h parses as
f ⋆ (g ⋆ h)), matching function composition ∘ and MeasureTheory.convolution.
Multiplication Fiber #
The fiber of multiplication at x: all pairs (a, b) with a * b = x.
Equations
Instances For
The fiber of addition at x: all pairs (a, b) with a + b = x.
Equations
Instances For
Convolution Definition and Existence #
The discrete convolution of f and g using bilinear map L: the value at x is the
sum of L (f a) (g b) over all pairs (a, b) with a * b = x.
Equations
- DiscreteConvolution.convolution L f g x = ∑' (ab : ↑(DiscreteConvolution.mulFiber x)), (L (f (↑ab).1)) (g (↑ab).2)
Instances For
Additive convolution: the value at x is the sum of L (f a) (g b) over all pairs
(a, b) with a + b = x.
Equations
- DiscreteConvolution.addConvolution L f g x = ∑' (ab : ↑(DiscreteConvolution.addFiber x)), (L (f (↑ab).1)) (g (↑ab).2)
Instances For
The convolution of f and g with bilinear map L exists at x: the family
ab ↦ L (f ab.1.1) (g ab.1.2) indexed by mulFiber x is summable.
Equations
- DiscreteConvolution.ConvolutionExistsAt L f g x = Summable fun (ab : ↑(DiscreteConvolution.mulFiber x)) => (L (f (↑ab).1)) (g (↑ab).2)
Instances For
The additive convolution of f and g with bilinear map L exists at x: the family
ab ↦ L (f ab.1.1) (g ab.1.2) indexed by addFiber x is summable.
Equations
- DiscreteConvolution.AddConvolutionExistsAt L f g x = Summable fun (ab : ↑(DiscreteConvolution.addFiber x)) => (L (f (↑ab).1)) (g (↑ab).2)
Instances For
The convolution of f and g with bilinear map L exists at every point, that is,
ConvolutionExistsAt L f g x holds for every x.
This does not assert that the resulting function convolution L f g is summable over M.
Equations
- DiscreteConvolution.ConvolutionExists L f g = ∀ (x : M), DiscreteConvolution.ConvolutionExistsAt L f g x
Instances For
The additive convolution of f and g with bilinear map L exists at every point, that
is, AddConvolutionExistsAt L f g x holds for every x.
This does not assert that the resulting function addConvolution L f g is summable over M.
Equations
- DiscreteConvolution.AddConvolutionExists L f g = ∀ (x : M), DiscreteConvolution.AddConvolutionExistsAt L f g x
Instances For
Finite Multiplication Fibers #
Multiplication fibers are finite when the index monoid has Finset.HasMulAntidiagonal.
Addition fibers are finite when the index monoid has Finset.HasAntidiagonal.
Convolution is a finite sum when the index monoid has Finset.HasMulAntidiagonal.
Additive convolution is a finite sum when the index monoid has
Finset.HasAntidiagonal.
Convolution exists whenever the index monoid has Finset.HasMulAntidiagonal, since every
fiber is then finite.
Additive convolution exists whenever the index monoid has Finset.HasAntidiagonal, since
every fiber is then finite.
Commutativity #
Convolution with Multiplication #
The discrete convolution of two functions using multiplication to combine their values.
Equations
Instances For
The additive-index convolution using multiplication to combine values.
Equations
Instances For
Notation for convolution using multiplication to combine values.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Notation for additive-index convolution using multiplication to combine values.
Equations
- One or more equations did not get rendered due to their size.
Instances For
External scalar multiplication in the first factor commutes with convolution.
External scalar multiplication in the second factor commutes with convolution.
Multiplication convolution as a finite sum over the mulAntidiagonal.
Additive-index multiplication convolution as a finite sum over the antidiagonal.