The tensor product of Schwartz functions #
Category: 1-Mathlib (CSD-free; staged as a Mathlib-upstream candidate). BACKLOG #126(i), out of #122.
★★ SchwartzMap.tensorProd — (p, q) ↦ f p · g q is Schwartz on D₁ × D₂ when f and g are
Schwartz on the factors. Mathlib has no such lemma, and #126 needs it: a composite integral kernel
is built from a product of two kernels, one variable then integrated out.
The two ingredients #
- the Leibniz bound
norm_iteratedFDeriv_mul_leexpands the derivatives of the product, and ★norm_iteratedFDeriv_comp_clm_ledrops each factor's derivative from the product to its own variable — a derivative along a continuous linear map of norm at most one is no bigger than the derivative of the function it is composed with, which is what the two projections are; - the weight splits multiplicatively:
‖(p, q)‖ ≤ (1 + ‖p‖)·(1 + ‖q‖), because the product norm is a max. So one weight on the pair becomes one weight on each factor, andSchwartzMap.one_add_le_sup_seminorm_applybounds each side by aFinset.supof that factor's seminorms. The same bound then serves every term of the Leibniz sum, which is what keeps the constant short.
Honest scope #
⚠️ Not bilinear-continuous. tensorProd is a function of two Schwartz functions, not a
continuous bilinear map 𝓢(D₁, ℂ) →L 𝓢(D₂, ℂ) →L 𝓢(D₁ × D₂, ℂ). The estimate here is linear in
one Finset.sup of each factor's seminorms, which is what continuity in each argument separately
would need, so the stronger statement is a packaging exercise — but nothing needs it, and
SchwartzMap.decay' asks only that a bound exist.
⚠️ Scalar-valued. Both factors are ℂ-valued and the product is multiplication. The version for
a general bounded bilinear map is the same proof with norm_iteratedFDeriv_clm_apply_const_le in
place of the Leibniz bound; it is not needed here.
References: SchwartzPartialIntegral.lean (#126(ii), which consumes
this), WeylComposition.lean (#126(iii)(iv));
specs/BACKLOG.md #126, #122.
★ A derivative along a short linear map is no bigger than the derivative itself. The two projections of a product are short, which is how the Leibniz expansion below returns each factor's derivative to its own variable.
Both projections of a product are short.
★★ The tensor product of two Schwartz functions is Schwartz.