Self-convolution coefficients of a formal power series #
PowerSeries.coeff_mul gives the coefficients of a product as a sum over Finset.antidiagonal.
For a recursion that reads off one coefficient from strictly earlier ones the equivalent sum over
Finset.range is what is wanted, so this file names the two shapes that occur, for a square and
for a cube, and records the translation.
Both are stated for an arbitrary coefficient function f : ℕ → R rather than for the
coefficients of a given series: the congruence lemmas compare two such functions, and the
truncation lemmas feed in a modified one.
The load-bearing facts are PowerSeries.selfConvTwo_congr and PowerSeries.selfConvThree_congr.
When f 0 = 0 the convolution at index n depends only on the values of f strictly below n,
because the extreme terms of the sum each carry a factor f 0. That is what makes a recursion
defined through these convolutions well founded.
Main definitions #
PowerSeries.selfConvTwo,PowerSeries.selfConvThree: theFinset.range-form convolution sums computing the coefficients of a square and of a cube.
Main results #
PowerSeries.selfConvTwo_def,PowerSeries.selfConvThree_def: the defining formulas, as named lemmas. Rewrite with these rather than unfolding the definitions.PowerSeries.coeff_pow_two_eq_selfConvTwo,PowerSeries.coeff_pow_three_eq_selfConvThree: those sums do compute the coefficients ofw ^ 2andw ^ 3.PowerSeries.coeff_mul_congr: then-th coefficient ofq * v, forqwith vanishing constant coefficient, depends only on the coefficients ofvstrictly belown.PowerSeries.selfConvTwo_congr_le,PowerSeries.selfConvThree_congr_le: the convolution atmdepends only on the values of the function on[0, m]. No hypothesis is needed.PowerSeries.selfConvTwo_congr,PowerSeries.selfConvThree_congr: for a function vanishing at0, that bound sharpens to the values strictly belown.PowerSeries.selfConvTwo_truncate,PowerSeries.selfConvThree_truncateand their_of_ltcompanions: truncating the function abovenleaves the convolution unchanged atn(needingf 0 = 0) and at every smaller index (needing nothing).PowerSeries.selfConvTwo_eq_zero,PowerSeries.selfConvThree_eq_zero: a function vanishing belowdhas square vanishing below2 * dand cube vanishing below3 * d.
Provenance #
Adapted from the AINTLIB HasseWeil project (github.com/CBirkbeck/AINTLIB, Apache-2.0, pinned
by TauCetiRoadmap/EllipticCurves/README.md at dev/hasse-weil @ 513e83879e2f),
HasseWeil/FormalGroup.lean, declarations conv₂ and conv₃ together with the coefficient
lemmas coeff_formalW_sq and coeff_formalW_cube.
Changes from the source. The source states its two convolution-coefficient lemmas only for its
formalW, although neither proof uses anything about that series; they are stated here for an
arbitrary series. The truncation lemmas likewise assumed formalW, and are stated here for any
f vanishing at 0, as consequences of the sharper congruence lemmas. The source works
throughout over a CommRing; nothing here needs more than a Semiring.
The n-th coefficient of the square of the series with coefficients f.
Equations
- PowerSeries.selfConvTwo f n = ∑ i ∈ Finset.range (n + 1), f i * f (n - i)
Instances For
The defining formula for selfConvTwo.
The n-th coefficient of the cube of the series with coefficients f.
Equations
- PowerSeries.selfConvThree f n = ∑ i ∈ Finset.range (n + 1), ∑ j ∈ Finset.range (n - i + 1), f i * f j * f (n - i - j)
Instances For
The defining formula for selfConvThree.
Multiplying by a series with vanishing constant coefficient makes the n-th coefficient of
the product depend only on the coefficients of the other factor strictly below n: the term that
would use the n-th one carries the vanishing constant coefficient.
selfConvTwo computes the coefficients of a square.
selfConvThree computes the coefficients of a cube.
selfConvTwo f n depends only on the values of f strictly below n, provided f
vanishes at 0: the two extreme terms of the convolution each carry a factor f 0.
The cube analogue of selfConvTwo_congr.
selfConvTwo f m depends only on the values of f on [0, m]. Unlike selfConvTwo_congr
this needs no hypothesis on f, because every index occurring in the sum is at most m; the
vanishing hypothesis there buys the strict bound < m instead.
The cube analogue of selfConvTwo_congr_le.
Truncating f above n does not change selfConvTwo f n, when f 0 = 0.
Truncating f above n does not change selfConvThree f n, when f 0 = 0.
The cube analogue of selfConvTwo_truncate_of_lt.