The Weyl operator maps Schwartz space to Schwartz space #
Category: 1-Mathlib (CSD-free; staged as a Mathlib-upstream candidate). BACKLOG #122, both halves.
#92(a1) proved the Weyl operator's output continuous on the Schwartz kernel class and said that continuity is the first of the Schwartz seminorm estimates, not the last. This file proves the rest of them and assembles the operator.
The smoothness half.
- ★★
iteratedFDeriv_comp_affineand ★★norm_iteratedFDeriv_comp_affine_le— the iterated chain rule along an affine line, which is what the Weyl kernel needs becausexentersKthrough((x+y)/2, x−y) = (y/2, −y) + x·(1/2, 1): an affine path with constant velocity. Mathlib has the two halves (ContinuousLinearMap.iteratedFDeriv_comp_rightfor the linear part,iteratedFDeriv_comp_add_leftfor the translation) and not the composite; - ★
exists_bound_snd_iteratedFDeriv— #92(a1)'s second-slot decay, now at every order; - ★★
partialDeriv_weylIntegrandand ★★norm_partialDeriv_weylIntegrand_le— the integrand's parameter derivatives, as an identity and in the primitive bound both halves run on; - ★★★
contDiff_weylOpK— the output isC^∞, by #120 on each ball with the bound family the previous items supply.
The decay half, which #122 first recorded as blocked on a derivative formula. #125 supplied the formula, and this is what it buys:
- ★★
iteratedDeriv_weylOpK— #125's formula on this integrand, so that a weight has something to move onto; - ★
abs_le_norm_weylPath—|x| ≤ (3/2)·‖A y x‖: the weight moves off the parameter and onto the kernel, which is the one inequality the whole half turns on; - ★★
exists_bound_snd_iteratedFDeriv_weighted— the kernel's decay at ordersNandN + 2combined into a weighted bound that still has an integrable profile in the second slot; - ★★★
exists_bound_weylOpK— every derivative decays in every weight, with the constant depending only onKand the bound linear in one seminorm of the state, which is the shapeSchwartzMap.mkCLMconsumes; - ★★★
weylCLM—Op(K) : 𝓢(ℝ, ℂ) →L[ℂ] 𝓢(ℝ, ℂ), row 122's statement.
Honest scope #
⚠️ One kernel class. weylCLM is the operator of a jointly Schwartz kernel. Weyl quantisation
of a wider symbol class (polynomially bounded symbols, Hörmander classes) is a different theorem and
is not proved here; #92's slicing caveat in WeylSymbolClass.lean still stands as written.
⚠️ The constant is not sharp. (3/2)ᴺ·C·π falls out of this route, not out of an optimisation.
⚠️ Nothing about composition. That Op(a) ∘ Op(b) is again a Weyl operator — the Moyal product —
is a separate brick and is not proved here; WignerCalculus.lean carries the ℏ² statement this file
does not touch.
References: WeylSymbolClass.lean (#92(a1), weylOpK, exists_bound_snd),
ContDiffParametricIntegral.lean (#120 and #125,
partialDeriv, contDiffOn_integral_of_bound, iteratedDeriv_integral_of_bound_le),
SchwartzSlice.lean (#121(i)); specs/BACKLOG.md #122, #92, #120, #125.
The iterated chain rule along an affine line #
★★ The iterated derivative along an affine line, as an identity: the linear part contributes its velocity in every slot.
★★ And the bound it gives: the velocity's norm to the order.
Second-slot decay at every order #
The Weyl kernel as an affine path #
The integrand, its parameter derivatives, and the bound they obey #
★★ The parameter derivatives of the integrand, as an identity. ψ does not depend on the
parameter, so no product rule enters: the whole x-dependence is the affine path.
★★ The bound they obey, in the primitive form both halves of #122 use: the state's value
times the kernel's k-th derivative at the path point. The velocity contributes nothing because it
is a unit vector.
The dominating bound both #120 statements consume, assembled once: on a unit ball of parameters every parameter derivative is dominated by an integrable profile in the integration variable.
★★★ The Weyl operator's output is C^∞. #92(a1) gave continuity; this gives every order, by
#120 on each ball with the bound supplied by the affine chain rule and the kernel's second-slot
decay.
★★ #125's formula on this integrand: every derivative of the output is the integral of the corresponding parameter derivative. The decay estimate is stated on the right-hand side, which is why the smoothness statement above is not enough on its own.
The output's decay #
Smoothness alone does not make Op(K) ψ a Schwartz function: every derivative must decay in every
polynomial weight too. The weight moves off the parameter and onto the kernel through
abs_le_norm_weylPath, the kernel's own decay at two orders apart supplies a majorant that is still
integrable in the integration variable, and ∫ (1 + y²)⁻¹ = π finishes it. The constant comes out
depending only on the kernel, and the bound linear in a single seminorm of the state — which is
exactly the hypothesis SchwartzMap.mkCLM consumes.
★★ Weighted second-slot decay. exists_bound_snd_iteratedFDeriv is the case N = 0: the
kernel's decay at orders N and N + 2 combine into a bound that already carries the weight
‖p‖ ^ N and still decays in the second slot.
★★★ Every derivative of the output decays, in every weight. The constant depends only on the kernel and the bound is linear in one seminorm of the state: this is the Schwartz seminorm estimate #92(a1) called continuity the first of, now at every order and weight.
The operator on Schwartz space #
★★★ Op(K) is a continuous linear map 𝓢(ℝ, ℂ) →L[ℂ] 𝓢(ℝ, ℂ) — row 122's statement, and
the form every further Weyl-calculus statement (composition, the Moyal product, adjoints) needs. The
two halves are exactly the two hypotheses: smoothness from contDiff_weylOpK, decay from
exists_bound_weylOpK, with the single seminorm on the right.
Equations
- WignerFunction.weylCLM K = SchwartzMap.mkCLM (fun (ψ : SchwartzMap ℝ ℂ) => WignerFunction.weylOpK K ψ) ⋯ ⋯ ⋯ ⋯
Instances For
★ The row reads on weylOp, not only on weylOpK. #121(i)'s slice family is what
discharges the gating this row recorded: the continuous linear map above is the Weyl operator of
the slice family, so Op(a) : 𝓢(ℝ, ℂ) →L 𝓢(ℝ, ℂ) holds in the vocabulary #92 stated it in.