Basic Definitions and E-Transform #
This file defines the core algebraic objects for the finite additive convolution (box-plus operation) and proves translation invariance via the E-transform.
Main definitions #
boxPlusCoeff: Coefficient formula for the box-plus convolutionboxPlusConv: Box-plus convolution of two coefficient sequencespolyToCoeffs: Convert a polynomial to its descending-degree coefficient sequencecoeffsToPoly: Convert a coefficient sequence back to a polynomialpolyBoxPlus: Box-plus convolution of two polynomialseTransform: The Eₙ transform mapping coefficient sequences to polynomialspolyTrunc: Truncation of a polynomial to degree at most dtruncExp: Truncated exponential polynomial
Main theorems #
eTransform_boxPlus: Eₙ(p ⊞ q) = truncate(Eₙ(p) * Eₙ(q))boxPlus_translate: Translation invariance of box-plus convolution
Notation #
p ⊞[n] qis used forpolyBoxPlus n p q
Basic definitions #
The coefficient formula for box-plus convolution: c_k = ∑_{i+j=k} [(n-i)!(n-j)! / (n!(n-k)!)] · aᵢ · bⱼ We work with real coefficients throughout.
Equations
Instances For
The box-plus convolution of two coefficient sequences of degree ≤ n. Given a = (a₀, a₁, ..., aₙ) and b = (b₀, b₁, ..., bₙ), returns the coefficient sequence c = (c₀, c₁, ..., cₙ).
Equations
- Problem4.boxPlusConv n a b k = if k ≤ n then Problem4.boxPlusCoeff n a b k else 0
Instances For
Convert a polynomial to its coefficient sequence in the basis x^{n-k}: p(x) = ∑_k a_k x^{n-k}, so a_k is the coefficient of x^{n-k} in p.
Equations
- Problem4.polyToCoeffs p n k = p.coeff (n - k)
Instances For
Convert a coefficient sequence back to a polynomial.
Equations
- Problem4.coeffsToPoly a n = ∑ k ∈ Finset.range (n + 1), Polynomial.C (a k) * Polynomial.X ^ (n - k)
Instances For
The box-plus convolution of two polynomials of degree ≤ n.
Equations
- (p ⊞[n] q) = Problem4.coeffsToPoly (Problem4.boxPlusConv n (Problem4.polyToCoeffs p n) (Problem4.polyToCoeffs q n)) n
Instances For
Notation p ⊞[n] q for polyBoxPlus n p q, the degree-n box-plus convolution.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Eₙ transform #
The Eₙ transform: E_n(f)(t) = ∑_k (a_k / n^{(k)}) t^k.
Equations
- Problem4.eTransform n a = ∑ k ∈ Finset.range (n + 1), Polynomial.C (a k / ↑(n.descFactorial k)) * Polynomial.X ^ k
Instances For
Truncation of a polynomial to degree ≤ d.
Equations
- Problem4.polyTrunc d p = ∑ k ∈ Finset.range (d + 1), Polynomial.C (p.coeff k) * Polynomial.X ^ k
Instances For
n! is nonzero as a real number.
n.descFactorial k expressed as n!/(n-k)! over ℝ.
Coefficient extraction for eTransform.
Key property: E_n(p ⊞_n q) = (E_n(p) · E_n(q)) truncated to degree ≤ n. This is equation (2.2) from the informal proof.
Translation invariance: helper lemmas #
n.descFactorial k is nonzero over ℝ when k ≤ n.
Splitting identity: n^{(k)} = n^{(k-s)} · (n-k+s)^{(s)} for s ≤ k ≤ n.
Key combinatorial identity: C(n-k+s, s) / n^{(k)} = 1/(s! · n^{(k-s)}). This underlies the E-transform translation formula.
Coefficient of p.comp (X - C a) via Taylor expansion.
The truncated exponential e^{-at} to degree ≤ n.
Equations
- Problem4.truncExp n a = ∑ k ∈ Finset.range (n + 1), Polynomial.C ((-a) ^ k / ↑k.factorial) * Polynomial.X ^ k
Instances For
Key coefficient identity for E-transform translation: the Taylor expansion coefficients divided by descFactorial equal the Cauchy product of truncated exponential and E-transform coefficients.
E-transform of translated polynomial: E_n(polyToCoeffs(p(x-a), n)) = polyTrunc n (truncExp a * E_n(p)). This is the formal version of E_n(p_a) = (e^{-at} E_n(p))_{≤n}.
Round-trip: polyToCoeffs ∘ coeffsToPoly = id for k ≤ n.
Round-trip: coeffsToPoly ∘ polyToCoeffs = id for degree ≤ n.
coeffsToPoly produces a polynomial of degree ≤ n.
coeffsToPoly depends only on values at indices ≤ n.
polyBoxPlus produces a polynomial of degree ≤ n.
polyBoxPlus n p q is monic when both inputs are monic of degree n.
The box-plus coefficient formula is symmetric: swapping the two input sequences
yields the same result. This follows by reindexing i ↦ k - i in the defining sum.
boxPlusConv is symmetric: boxPlusConv n a b = boxPlusConv n b a.
polyBoxPlus is commutative: polyBoxPlus n p q = polyBoxPlus n q p.
natDegree of p.comp(X - C a) ≤ natDegree of p.
Translation invariance #
If p_a(x) = p(x - a) and q_b(x) = q(x - b), then p_a ⊞_n q_b(x) = (p ⊞_n q)(x - a - b). Requires degree ≤ n since polyBoxPlus only reads coefficients up to degree n.
Uniform Lipschitz bound for polyBoxPlus: the constant C depends only on n and q, not on the polynomials being compared or the perturbation size δ.