Single-point families and associativity of discrete convolution #
Mathlib's DiscreteConvolution.single_convolution says that Pi.single 1 e is a unit for
convolution when e acts as one. More generally, the convolution of two families supported at one
point each is supported at the product of the points, with the bilinear map applied to the values.
Mathlib has no associativity for DiscreteConvolution.ringConvolution. Both bracketings of
f ⋆ᵣ g ⋆ᵣ h are sums of f a * g b * h c over the triples with a * b * c = x, grouped in two
ways; when that triple family is summable and each inner convolution sum converges, the two
groupings agree.
Main results #
DiscreteConvolution.single_convolution_singleand its additive versionDiscreteConvolution.single_addConvolution_single:Pi.single m a ⋆[L] Pi.single n b = Pi.single (m * n) (L a b).DiscreteConvolution.single_ringConvolution_singleand its additive versionDiscreteConvolution.single_addRingConvolution_single:Pi.single m a ⋆ᵣ Pi.single n b = Pi.single (m * n) (a * b).DiscreteConvolution.ringConvolution_assocand its additive versionDiscreteConvolution.addRingConvolution_assoc: ring convolution is associative when the triple family and the inner convolutions are summable.
The convolution of two single-point families is a single-point family, at the product of the points and with the bilinear map applied to the values.
The ring convolution of two single-point families is a single-point family, at the product of the points and with the product of the values.
Ring convolution is associative when the family f a * g b * h c over the triples with
a * b * c = x is summable for every x, and so are the convolution sums of f with g and of
g with h. The triples are indexed as pairs ((a, b), c) with a * b = m and m * c = x.
Additive ring convolution is associative when the family f a * g b * h c over the
triples with a + b + c = x is summable for every x, and so are the convolution sums of f
with g and of g with h. The triples are indexed as pairs ((a, b), c) with a + b = m
and m + c = x.