Documentation

Mathlib.Analysis.Distribution.SchwartzSpace

Schwartz space #

This file defines the Schwartz space. Usually, the Schwartz space is defined as the set of smooth functions $f : ℝ^n β†’ β„‚$ such that there exists $C_{Ξ±Ξ²} > 0$ with $$|x^Ξ± βˆ‚^Ξ² f(x)| < C_{Ξ±Ξ²}$$ for all $x ∈ ℝ^n$ and for all multiindices $Ξ±, Ξ²$. In mathlib, we use a slightly different approach and define the Schwartz space as all smooth functions f : E β†’ F, where E and F are real normed vector spaces such that for all natural numbers k and n we have uniform bounds β€–xβ€–^k * β€–iteratedFDeriv ℝ n f xβ€– < C. This approach completely avoids using partial derivatives as well as polynomials. We construct the topology on the Schwartz space by a family of seminorms, which are the best constants in the above estimates. The abstract theory of topological vector spaces developed in SeminormFamily.moduleFilterBasis and WithSeminorms.toLocallyConvexSpace turns the Schwartz space into a locally convex topological vector space.

Main definitions #

Main statements #

Implementation details #

The implementation of the seminorms is taken almost literally from ContinuousLinearMap.opNorm.

Notation #

Tags #

Schwartz space, tempered distributions

structure SchwartzMap (E : Type u_4) (F : Type u_5) [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] :
Type (max u_4 u_5)

A function is a Schwartz function if it is smooth and all derivatives decay faster than any power of β€–xβ€–.

Instances For
    theorem SchwartzMap.decay' {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] (self : SchwartzMap E F) (k : β„•) (n : β„•) :
    βˆƒ (C : ℝ), βˆ€ (x : E), β€–xβ€– ^ k * β€–iteratedFDeriv ℝ n self.toFun xβ€– ≀ C

    A function is a Schwartz function if it is smooth and all derivatives decay faster than any power of β€–xβ€–.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Equations
      • SchwartzMap.instFunLike = { coe := fun (f : SchwartzMap E F) => f.toFun, coe_injective' := β‹― }
      instance SchwartzMap.instCoeFun {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] :
      CoeFun (SchwartzMap E F) fun (x : SchwartzMap E F) => E β†’ F

      Helper instance for when there's too many metavariables to apply DFunLike.hasCoeToFun.

      Equations
      • SchwartzMap.instCoeFun = DFunLike.hasCoeToFun
      theorem SchwartzMap.decay {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] (f : SchwartzMap E F) (k : β„•) (n : β„•) :
      βˆƒ (C : ℝ), 0 < C ∧ βˆ€ (x : E), β€–xβ€– ^ k * β€–iteratedFDeriv ℝ n (⇑f) xβ€– ≀ C

      All derivatives of a Schwartz function are rapidly decaying.

      Every Schwartz function is smooth.

      Every Schwartz function is continuous.

      Every Schwartz function is differentiable.

      Every Schwartz function is differentiable at any point.

      theorem SchwartzMap.ext {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {f : SchwartzMap E F} {g : SchwartzMap E F} (h : βˆ€ (x : E), f x = g x) :
      f = g

      Auxiliary lemma, used in proving the more general result isBigO_cocompact_rpow.

      theorem SchwartzMap.bounds_nonempty {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] (k : β„•) (n : β„•) (f : SchwartzMap E F) :
      βˆƒ (c : ℝ), c ∈ {c : ℝ | 0 ≀ c ∧ βˆ€ (x : E), β€–xβ€– ^ k * β€–iteratedFDeriv ℝ n (⇑f) xβ€– ≀ c}
      theorem SchwartzMap.decay_smul_aux {π•œ : Type u_1} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (k : β„•) (n : β„•) (f : SchwartzMap E F) (c : π•œ) (x : E) :

      Helper definition for the seminorms of the Schwartz space.

      Equations
      Instances For
        theorem SchwartzMap.seminormAux_le_bound {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] (k : β„•) (n : β„•) (f : SchwartzMap E F) {M : ℝ} (hMp : 0 ≀ M) (hM : βˆ€ (x : E), β€–xβ€– ^ k * β€–iteratedFDeriv ℝ n (⇑f) xβ€– ≀ M) :

        If one controls the norm of every A x, then one controls the norm of A.

        Algebraic properties #

        instance SchwartzMap.instSMul {π•œ : Type u_1} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] :
        SMul π•œ (SchwartzMap E F)
        Equations
        • SchwartzMap.instSMul = { smul := fun (c : π•œ) (f : SchwartzMap E F) => { toFun := c β€’ ⇑f, smooth' := β‹―, decay' := β‹― } }
        @[simp]
        theorem SchwartzMap.smul_apply {π•œ : Type u_1} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] {f : SchwartzMap E F} {c : π•œ} {x : E} :
        (c β€’ f) x = c β€’ f x
        instance SchwartzMap.instIsScalarTower {π•œ : Type u_1} {π•œ' : Type u_2} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] [NormedField π•œ'] [NormedSpace π•œ' F] [SMulCommClass ℝ π•œ' F] [SMul π•œ π•œ'] [IsScalarTower π•œ π•œ' F] :
        IsScalarTower π•œ π•œ' (SchwartzMap E F)
        Equations
        • β‹― = β‹―
        instance SchwartzMap.instSMulCommClass {π•œ : Type u_1} {π•œ' : Type u_2} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] [NormedField π•œ'] [NormedSpace π•œ' F] [SMulCommClass ℝ π•œ' F] [SMulCommClass π•œ π•œ' F] :
        SMulCommClass π•œ π•œ' (SchwartzMap E F)
        Equations
        • β‹― = β‹―
        theorem SchwartzMap.seminormAux_smul_le {π•œ : Type u_1} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (k : β„•) (n : β„•) (c : π•œ) (f : SchwartzMap E F) :
        Equations
        • SchwartzMap.instNSMul = { smul := fun (c : β„•) (f : SchwartzMap E F) => { toFun := c β€’ ⇑f, smooth' := β‹―, decay' := β‹― } }
        Equations
        • SchwartzMap.instZSMul = { smul := fun (c : β„€) (f : SchwartzMap E F) => { toFun := c β€’ ⇑f, smooth' := β‹―, decay' := β‹― } }
        Equations
        • SchwartzMap.instZero = { zero := { toFun := fun (x : E) => 0, smooth' := β‹―, decay' := β‹― } }
        Equations
        • SchwartzMap.instInhabited = { default := 0 }
        @[simp]
        @[simp]
        theorem SchwartzMap.zero_apply {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {x : E} :
        0 x = 0
        Equations
        • SchwartzMap.instNeg = { neg := fun (f : SchwartzMap E F) => { toFun := -⇑f, smooth' := β‹―, decay' := β‹― } }
        Equations
        • SchwartzMap.instAdd = { add := fun (f g : SchwartzMap E F) => { toFun := ⇑f + ⇑g, smooth' := β‹―, decay' := β‹― } }
        @[simp]
        theorem SchwartzMap.add_apply {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {f : SchwartzMap E F} {g : SchwartzMap E F} {x : E} :
        (f + g) x = f x + g x
        Equations
        • SchwartzMap.instSub = { sub := fun (f g : SchwartzMap E F) => { toFun := ⇑f - ⇑g, smooth' := β‹―, decay' := β‹― } }
        @[simp]
        theorem SchwartzMap.sub_apply {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {f : SchwartzMap E F} {g : SchwartzMap E F} {x : E} :
        (f - g) x = f x - g x
        Equations

        Coercion as an additive homomorphism.

        Equations
        Instances For
          instance SchwartzMap.instModule {π•œ : Type u_1} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] :
          Module π•œ (SchwartzMap E F)
          Equations

          Seminorms on Schwartz space #

          def SchwartzMap.seminorm (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (k : β„•) (n : β„•) :
          Seminorm π•œ (SchwartzMap E F)

          The seminorms of the Schwartz space given by the best constants in the definition of 𝓒(E, F).

          Equations
          Instances For
            theorem SchwartzMap.seminorm_le_bound (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (k : β„•) (n : β„•) (f : SchwartzMap E F) {M : ℝ} (hMp : 0 ≀ M) (hM : βˆ€ (x : E), β€–xβ€– ^ k * β€–iteratedFDeriv ℝ n (⇑f) xβ€– ≀ M) :
            (SchwartzMap.seminorm π•œ k n) f ≀ M

            If one controls the seminorm for every x, then one controls the seminorm.

            theorem SchwartzMap.seminorm_le_bound' (π•œ : Type u_1) {F : Type u_5} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (k : β„•) (n : β„•) (f : SchwartzMap ℝ F) {M : ℝ} (hMp : 0 ≀ M) (hM : βˆ€ (x : ℝ), |x| ^ k * β€–iteratedDeriv n (⇑f) xβ€– ≀ M) :
            (SchwartzMap.seminorm π•œ k n) f ≀ M

            If one controls the seminorm for every x, then one controls the seminorm.

            Variant for functions 𝓒(ℝ, F).

            theorem SchwartzMap.le_seminorm (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (k : β„•) (n : β„•) (f : SchwartzMap E F) (x : E) :

            The seminorm controls the Schwartz estimate for any fixed x.

            theorem SchwartzMap.le_seminorm' (π•œ : Type u_1) {F : Type u_5} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (k : β„•) (n : β„•) (f : SchwartzMap ℝ F) (x : ℝ) :
            |x| ^ k * β€–iteratedDeriv n (⇑f) xβ€– ≀ (SchwartzMap.seminorm π•œ k n) f

            The seminorm controls the Schwartz estimate for any fixed x.

            Variant for functions 𝓒(ℝ, F).

            theorem SchwartzMap.norm_iteratedFDeriv_le_seminorm (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (f : SchwartzMap E F) (n : β„•) (xβ‚€ : E) :
            β€–iteratedFDeriv ℝ n (⇑f) xβ‚€β€– ≀ (SchwartzMap.seminorm π•œ 0 n) f
            theorem SchwartzMap.norm_pow_mul_le_seminorm (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (f : SchwartzMap E F) (k : β„•) (xβ‚€ : E) :
            β€–xβ‚€β€– ^ k * β€–f xβ‚€β€– ≀ (SchwartzMap.seminorm π•œ k 0) f
            theorem SchwartzMap.norm_le_seminorm (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (f : SchwartzMap E F) (xβ‚€ : E) :
            β€–f xβ‚€β€– ≀ (SchwartzMap.seminorm π•œ 0 0) f
            def schwartzSeminormFamily (π•œ : Type u_1) (E : Type u_4) (F : Type u_5) [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] :

            The family of Schwartz seminorms.

            Equations
            Instances For
              @[simp]
              theorem SchwartzMap.schwartzSeminormFamily_apply (π•œ : Type u_1) (E : Type u_4) (F : Type u_5) [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (n : β„•) (k : β„•) :
              schwartzSeminormFamily π•œ E F (n, k) = SchwartzMap.seminorm π•œ n k
              @[simp]
              theorem SchwartzMap.schwartzSeminormFamily_apply_zero (π•œ : Type u_1) (E : Type u_4) (F : Type u_5) [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] :
              schwartzSeminormFamily π•œ E F 0 = SchwartzMap.seminorm π•œ 0 0
              theorem SchwartzMap.one_add_le_sup_seminorm_apply {π•œ : Type u_1} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] {m : β„• Γ— β„•} {k : β„•} {n : β„•} (hk : k ≀ m.1) (hn : n ≀ m.2) (f : SchwartzMap E F) (x : E) :
              (1 + β€–xβ€–) ^ k * β€–iteratedFDeriv ℝ n (⇑f) xβ€– ≀ 2 ^ m.1 * ((Finset.Iic m).sup fun (m : β„• Γ— β„•) => SchwartzMap.seminorm π•œ m.1 m.2) f

              A more convenient version of le_sup_seminorm_apply.

              The set Finset.Iic m is the set of all pairs (k', n') with k' ≀ m.1 and n' ≀ m.2. Note that the constant is far from optimal.

              The topology on the Schwartz space #

              theorem schwartz_withSeminorms (π•œ : Type u_1) (E : Type u_4) (F : Type u_5) [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] :
              instance SchwartzMap.instContinuousSMul {π•œ : Type u_1} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] :
              Equations
              • β‹― = β‹―
              Equations

              Functions of temperate growth #

              A function is called of temperate growth if it is smooth and all iterated derivatives are polynomially bounded.

              Equations
              Instances For
                theorem Function.HasTemperateGrowth.norm_iteratedFDeriv_le_uniform_aux {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] {f : E β†’ F} (hf_temperate : Function.HasTemperateGrowth f) (n : β„•) :
                βˆƒ (k : β„•) (C : ℝ), 0 ≀ C ∧ βˆ€ N ≀ n, βˆ€ (x : E), β€–iteratedFDeriv ℝ N f xβ€– ≀ C * (1 + β€–xβ€–) ^ k

                A measure ΞΌ has temperate growth if there is an n : β„• such that (1 + β€–xβ€–) ^ (- n) is ΞΌ-integrable.

                Instances
                  theorem MeasureTheory.Measure.HasTemperateGrowth.exists_integrable {D : Type u_3} [NormedAddCommGroup D] [MeasurableSpace D] {ΞΌ : MeasureTheory.Measure D} [self : ΞΌ.HasTemperateGrowth] :
                  βˆƒ (n : β„•), MeasureTheory.Integrable (fun (x : D) => (1 + β€–xβ€–) ^ (-↑n)) ΞΌ

                  An integer exponent l such that (1 + β€–xβ€–) ^ (-l) is integrable if ΞΌ has temperate growth.

                  Equations
                  • ΞΌ.integrablePower = if h : ΞΌ.HasTemperateGrowth then β‹―.choose else 0
                  Instances For
                    theorem SchwartzMap.integrable_pow_neg_integrablePower {D : Type u_3} [NormedAddCommGroup D] [MeasurableSpace D] (ΞΌ : MeasureTheory.Measure D) [h : ΞΌ.HasTemperateGrowth] :
                    MeasureTheory.Integrable (fun (x : D) => (1 + β€–xβ€–) ^ (-↑μ.integrablePower)) ΞΌ
                    Equations
                    • β‹― = β‹―
                    Equations
                    • β‹― = β‹―
                    theorem SchwartzMap.pow_mul_le_of_le_of_pow_mul_le {C₁ : ℝ} {Cβ‚‚ : ℝ} {k : β„•} {l : β„•} {x : ℝ} {f : ℝ} (hx : 0 ≀ x) (hf : 0 ≀ f) (h₁ : f ≀ C₁) (hβ‚‚ : x ^ (k + l) * f ≀ Cβ‚‚) :
                    x ^ k * f ≀ 2 ^ l * (C₁ + Cβ‚‚) * (1 + x) ^ (-↑l)

                    Pointwise inequality to control x ^ k * f in terms of 1 / (1 + x) ^ l if one controls both f (with a bound C₁) and x ^ (k + l) * f (with a bound Cβ‚‚). This will be used to check integrability of x ^ k * f x when f is a Schwartz function, and to control explicitly its integral in terms of suitable seminorms of f.

                    theorem SchwartzMap.integrable_of_le_of_pow_mul_le {D : Type u_3} {E : Type u_4} [NormedAddCommGroup E] [NormedAddCommGroup D] [MeasurableSpace D] [BorelSpace D] [SecondCountableTopology D] {ΞΌ : MeasureTheory.Measure D} [ΞΌ.HasTemperateGrowth] {f : D β†’ E} {C₁ : ℝ} {Cβ‚‚ : ℝ} {k : β„•} (hf : βˆ€ (x : D), β€–f xβ€– ≀ C₁) (h'f : βˆ€ (x : D), β€–xβ€– ^ (k + ΞΌ.integrablePower) * β€–f xβ€– ≀ Cβ‚‚) (h''f : MeasureTheory.AEStronglyMeasurable f ΞΌ) :

                    Given a function such that f and x ^ (k + l) * f are bounded for a suitable l, then x ^ k * f is integrable. The bounds are not relevant for the integrability conclusion, but they are relevant for bounding the integral in integral_pow_mul_le_of_le_of_pow_mul_le. We formulate the two lemmas with the same set of assumptions for ease of applications.

                    theorem SchwartzMap.integral_pow_mul_le_of_le_of_pow_mul_le {D : Type u_3} {E : Type u_4} [NormedAddCommGroup E] [NormedAddCommGroup D] [MeasurableSpace D] {ΞΌ : MeasureTheory.Measure D} [ΞΌ.HasTemperateGrowth] {f : D β†’ E} {C₁ : ℝ} {Cβ‚‚ : ℝ} {k : β„•} (hf : βˆ€ (x : D), β€–f xβ€– ≀ C₁) (h'f : βˆ€ (x : D), β€–xβ€– ^ (k + ΞΌ.integrablePower) * β€–f xβ€– ≀ Cβ‚‚) :
                    ∫ (x : D), β€–xβ€– ^ k * β€–f xβ€– βˆ‚ΞΌ ≀ (2 ^ ΞΌ.integrablePower * ∫ (x : D), (1 + β€–xβ€–) ^ (-↑μ.integrablePower) βˆ‚ΞΌ) * (C₁ + Cβ‚‚)

                    Given a function such that f and x ^ (k + l) * f are bounded for a suitable l, then one can bound explicitly the integral of x ^ k * f.

                    Construction of continuous linear maps between Schwartz spaces #

                    def SchwartzMap.mkLM {π•œ : Type u_1} {π•œ' : Type u_2} {D : Type u_3} {E : Type u_4} {F : Type u_5} {G : Type u_6} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedField π•œ'] [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedSpace π•œ E] [SMulCommClass ℝ π•œ E] [NormedAddCommGroup G] [NormedSpace ℝ G] [NormedSpace π•œ' G] [SMulCommClass ℝ π•œ' G] {Οƒ : π•œ β†’+* π•œ'} (A : (D β†’ E) β†’ F β†’ G) (hadd : βˆ€ (f g : SchwartzMap D E) (x : F), A (⇑f + ⇑g) x = A (⇑f) x + A (⇑g) x) (hsmul : βˆ€ (a : π•œ) (f : SchwartzMap D E) (x : F), A (a β€’ ⇑f) x = Οƒ a β€’ A (⇑f) x) (hsmooth : βˆ€ (f : SchwartzMap D E), ContDiff ℝ ⊀ (A ⇑f)) (hbound : βˆ€ (n : β„• Γ— β„•), βˆƒ (s : Finset (β„• Γ— β„•)) (C : ℝ), 0 ≀ C ∧ βˆ€ (f : SchwartzMap D E) (x : F), β€–xβ€– ^ n.1 * β€–iteratedFDeriv ℝ n.2 (A ⇑f) xβ€– ≀ C * (s.sup (schwartzSeminormFamily π•œ D E)) f) :

                    Create a semilinear map between Schwartz spaces.

                    Note: This is a helper definition for mkCLM.

                    Equations
                    • SchwartzMap.mkLM A hadd hsmul hsmooth hbound = { toFun := fun (f : SchwartzMap D E) => { toFun := A ⇑f, smooth' := β‹―, decay' := β‹― }, map_add' := β‹―, map_smul' := β‹― }
                    Instances For
                      def SchwartzMap.mkCLM {π•œ : Type u_1} {π•œ' : Type u_2} {D : Type u_3} {E : Type u_4} {F : Type u_5} {G : Type u_6} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedField π•œ'] [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedSpace π•œ E] [SMulCommClass ℝ π•œ E] [NormedAddCommGroup G] [NormedSpace ℝ G] [NormedSpace π•œ' G] [SMulCommClass ℝ π•œ' G] {Οƒ : π•œ β†’+* π•œ'} [RingHomIsometric Οƒ] (A : (D β†’ E) β†’ F β†’ G) (hadd : βˆ€ (f g : SchwartzMap D E) (x : F), A (⇑f + ⇑g) x = A (⇑f) x + A (⇑g) x) (hsmul : βˆ€ (a : π•œ) (f : SchwartzMap D E) (x : F), A (a β€’ ⇑f) x = Οƒ a β€’ A (⇑f) x) (hsmooth : βˆ€ (f : SchwartzMap D E), ContDiff ℝ ⊀ (A ⇑f)) (hbound : βˆ€ (n : β„• Γ— β„•), βˆƒ (s : Finset (β„• Γ— β„•)) (C : ℝ), 0 ≀ C ∧ βˆ€ (f : SchwartzMap D E) (x : F), β€–xβ€– ^ n.1 * β€–iteratedFDeriv ℝ n.2 (A ⇑f) xβ€– ≀ C * (s.sup (schwartzSeminormFamily π•œ D E)) f) :

                      Create a continuous semilinear map between Schwartz spaces.

                      For an example of using this definition, see fderivCLM.

                      Equations
                      Instances For
                        def SchwartzMap.mkCLMtoNormedSpace {π•œ : Type u_1} {π•œ' : Type u_2} {D : Type u_3} {E : Type u_4} {G : Type u_6} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedField π•œ] [NormedField π•œ'] [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedSpace π•œ E] [SMulCommClass ℝ π•œ E] [NormedAddCommGroup G] [NormedSpace π•œ' G] {Οƒ : π•œ β†’+* π•œ'} [RingHomIsometric Οƒ] (A : SchwartzMap D E β†’ G) (hadd : βˆ€ (f g : SchwartzMap D E), A (f + g) = A f + A g) (hsmul : βˆ€ (a : π•œ) (f : SchwartzMap D E), A (a β€’ f) = Οƒ a β€’ A f) (hbound : βˆƒ (s : Finset (β„• Γ— β„•)) (C : ℝ), 0 ≀ C ∧ βˆ€ (f : SchwartzMap D E), β€–A fβ€– ≀ C * (s.sup (schwartzSeminormFamily π•œ D E)) f) :

                        Define a continuous semilinear map from Schwartz space to a normed space.

                        Equations
                        Instances For
                          def SchwartzMap.evalCLM {π•œ : Type u_1} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedField π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (m : E) :

                          The map applying a vector to Hom-valued Schwartz function as a continuous linear map.

                          Equations
                          Instances For

                            The map f ↦ (x ↦ B (f x) (g x)) as a continuous π•œ-linear map on Schwartz space, where B is a continuous π•œ-linear map and g is a function of temperate growth.

                            Equations
                            Instances For
                              def SchwartzMap.compCLM (π•œ : Type u_1) {D : Type u_3} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] {g : D β†’ E} (hg : Function.HasTemperateGrowth g) (hg_upper : βˆƒ (k : β„•) (C : ℝ), βˆ€ (x : D), β€–xβ€– ≀ C * (1 + β€–g xβ€–) ^ k) :

                              Composition with a function on the right is a continuous linear map on Schwartz space provided that the function is temperate and growths polynomially near infinity.

                              Equations
                              Instances For
                                @[simp]
                                theorem SchwartzMap.compCLM_apply (π•œ : Type u_1) {D : Type u_3} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] {g : D β†’ E} (hg : Function.HasTemperateGrowth g) (hg_upper : βˆƒ (k : β„•) (C : ℝ), βˆ€ (x : D), β€–xβ€– ≀ C * (1 + β€–g xβ€–) ^ k) (f : SchwartzMap E F) :
                                ⇑((SchwartzMap.compCLM π•œ hg hg_upper) f) = ⇑f ∘ g
                                def SchwartzMap.compCLMOfAntilipschitz (π•œ : Type u_1) {D : Type u_3} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] {K : NNReal} {g : D β†’ E} (hg : Function.HasTemperateGrowth g) (h'g : AntilipschitzWith K g) :

                                Composition with a function on the right is a continuous linear map on Schwartz space provided that the function is temperate and antilipschitz.

                                Equations
                                Instances For
                                  @[simp]
                                  theorem SchwartzMap.compCLMOfAntilipschitz_apply (π•œ : Type u_1) {D : Type u_3} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] {K : NNReal} {g : D β†’ E} (hg : Function.HasTemperateGrowth g) (h'g : AntilipschitzWith K g) (f : SchwartzMap E F) :
                                  ⇑((SchwartzMap.compCLMOfAntilipschitz π•œ hg h'g) f) = ⇑f ∘ g

                                  Composition with a continuous linear equiv on the right is a continuous linear map on Schwartz space.

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem SchwartzMap.compCLMOfContinuousLinearEquiv_apply (π•œ : Type u_1) {D : Type u_3} {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (g : D ≃L[ℝ] E) (f : SchwartzMap E F) :
                                    ⇑((SchwartzMap.compCLMOfContinuousLinearEquiv π•œ g) f) = ⇑f ∘ ⇑g

                                    Derivatives of Schwartz functions #

                                    def SchwartzMap.fderivCLM (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] :

                                    The FrΓ©chet derivative on Schwartz space as a continuous π•œ-linear map.

                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem SchwartzMap.fderivCLM_apply (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (f : SchwartzMap E F) (x : E) :
                                      ((SchwartzMap.fderivCLM π•œ) f) x = fderiv ℝ (⇑f) x
                                      def SchwartzMap.derivCLM (π•œ : Type u_1) {F : Type u_5} [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] :

                                      The 1-dimensional derivative on Schwartz space as a continuous π•œ-linear map.

                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem SchwartzMap.derivCLM_apply (π•œ : Type u_1) {F : Type u_5} [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (f : SchwartzMap ℝ F) (x : ℝ) :
                                        ((SchwartzMap.derivCLM π•œ) f) x = deriv (⇑f) x
                                        def SchwartzMap.pderivCLM (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (m : E) :

                                        The partial derivative (or directional derivative) in the direction m : E as a continuous linear map on Schwartz space.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem SchwartzMap.pderivCLM_apply (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (m : E) (f : SchwartzMap E F) (x : E) :
                                          ((SchwartzMap.pderivCLM π•œ m) f) x = (fderiv ℝ (⇑f) x) m
                                          theorem SchwartzMap.pderivCLM_eq_lineDeriv (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (m : E) (f : SchwartzMap E F) (x : E) :
                                          ((SchwartzMap.pderivCLM π•œ m) f) x = lineDeriv ℝ (⇑f) x m
                                          def SchwartzMap.iteratedPDeriv (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] {n : β„•} :
                                          (Fin n β†’ E) β†’ SchwartzMap E F β†’L[π•œ] SchwartzMap E F

                                          The iterated partial derivative (or directional derivative) as a continuous linear map on Schwartz space.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            @[simp]
                                            theorem SchwartzMap.iteratedPDeriv_zero (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (m : Fin 0 β†’ E) (f : SchwartzMap E F) :
                                            (SchwartzMap.iteratedPDeriv π•œ m) f = f
                                            @[simp]
                                            theorem SchwartzMap.iteratedPDeriv_one (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (m : Fin 1 β†’ E) (f : SchwartzMap E F) :
                                            (SchwartzMap.iteratedPDeriv π•œ m) f = (SchwartzMap.pderivCLM π•œ (m 0)) f
                                            theorem SchwartzMap.iteratedPDeriv_succ_left (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] {n : β„•} (m : Fin (n + 1) β†’ E) (f : SchwartzMap E F) :
                                            (SchwartzMap.iteratedPDeriv π•œ m) f = (SchwartzMap.pderivCLM π•œ (m 0)) ((SchwartzMap.iteratedPDeriv π•œ (Fin.tail m)) f)
                                            theorem SchwartzMap.iteratedPDeriv_succ_right (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] {n : β„•} (m : Fin (n + 1) β†’ E) (f : SchwartzMap E F) :
                                            theorem SchwartzMap.iteratedPDeriv_eq_iteratedFDeriv (π•œ : Type u_1) {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] {n : β„•} {m : Fin n β†’ E} {f : SchwartzMap E F} {x : E} :
                                            ((SchwartzMap.iteratedPDeriv π•œ m) f) x = (iteratedFDeriv ℝ n (⇑f) x) m

                                            Integration #

                                            theorem SchwartzMap.integral_pow_mul_iteratedFDeriv_le (π•œ : Type u_1) {D : Type u_3} {V : Type u_7} [RCLike π•œ] [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedAddCommGroup V] [NormedSpace ℝ V] [NormedSpace π•œ V] [MeasurableSpace D] (ΞΌ : MeasureTheory.Measure D) [hΞΌ : ΞΌ.HasTemperateGrowth] (f : SchwartzMap D V) (k : β„•) (n : β„•) :
                                            ∫ (x : D), β€–xβ€– ^ k * β€–iteratedFDeriv ℝ n (⇑f) xβ€– βˆ‚ΞΌ ≀ (2 ^ ΞΌ.integrablePower * ∫ (x : D), (1 + β€–xβ€–) ^ (-↑μ.integrablePower) βˆ‚ΞΌ) * ((SchwartzMap.seminorm π•œ 0 n) f + (SchwartzMap.seminorm π•œ (k + ΞΌ.integrablePower) n) f)
                                            theorem SchwartzMap.integrable {D : Type u_3} {V : Type u_7} [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedAddCommGroup V] [NormedSpace ℝ V] [MeasurableSpace D] [BorelSpace D] [SecondCountableTopology D] {ΞΌ : MeasureTheory.Measure D} [hΞΌ : ΞΌ.HasTemperateGrowth] (f : SchwartzMap D V) :
                                            def SchwartzMap.integralCLM (π•œ : Type u_1) {D : Type u_3} {V : Type u_7} [RCLike π•œ] [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedAddCommGroup V] [NormedSpace ℝ V] [NormedSpace π•œ V] [MeasurableSpace D] [BorelSpace D] [SecondCountableTopology D] (ΞΌ : MeasureTheory.Measure D) [hΞΌ : ΞΌ.HasTemperateGrowth] :
                                            SchwartzMap D V β†’L[π•œ] V

                                            The integral as a continuous linear map from Schwartz space to the codomain.

                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem SchwartzMap.integralCLM_apply (π•œ : Type u_1) {D : Type u_3} {V : Type u_7} [RCLike π•œ] [NormedAddCommGroup D] [NormedSpace ℝ D] [NormedAddCommGroup V] [NormedSpace ℝ V] [NormedSpace π•œ V] [MeasurableSpace D] [BorelSpace D] [SecondCountableTopology D] {ΞΌ : MeasureTheory.Measure D} [hΞΌ : ΞΌ.HasTemperateGrowth] (f : SchwartzMap D V) :
                                              (SchwartzMap.integralCLM π•œ ΞΌ) f = ∫ (x : D), f x βˆ‚ΞΌ

                                              Inclusion into the space of bounded continuous functions #

                                              Schwartz functions as bounded continuous functions

                                              Equations
                                              Instances For
                                                @[simp]
                                                theorem SchwartzMap.toBoundedContinuousFunction_apply {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] (f : SchwartzMap E F) (x : E) :
                                                f.toBoundedContinuousFunction x = f x

                                                Schwartz functions as continuous functions

                                                Equations
                                                • f.toContinuousMap = f.toBoundedContinuousFunction.toContinuousMap
                                                Instances For

                                                  The inclusion map from Schwartz functions to bounded continuous functions as a continuous linear map.

                                                  Equations
                                                  Instances For
                                                    @[simp]
                                                    theorem SchwartzMap.toBoundedContinuousFunctionCLM_apply (π•œ : Type u_1) (E : Type u_4) (F : Type u_5) [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (f : SchwartzMap E F) (x : E) :
                                                    def SchwartzMap.delta (π•œ : Type u_1) {E : Type u_4} (F : Type u_5) [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (x : E) :
                                                    SchwartzMap E F β†’L[π•œ] F

                                                    The Dirac delta distribution

                                                    Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem SchwartzMap.delta_apply (π•œ : Type u_1) {E : Type u_4} (F : Type u_5) [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (xβ‚€ : E) (f : SchwartzMap E F) :
                                                      (SchwartzMap.delta π•œ F xβ‚€) f = f xβ‚€
                                                      @[simp]

                                                      Integrating against the Dirac measure is equal to the delta distribution.

                                                      Schwartz functions as continuous functions vanishing at infinity.

                                                      Equations
                                                      • f.toZeroAtInfty = { toFun := ⇑f, continuous_toFun := β‹―, zero_at_infty' := β‹― }
                                                      Instances For
                                                        @[simp]
                                                        theorem SchwartzMap.toZeroAtInfty_apply {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [ProperSpace E] (f : SchwartzMap E F) (x : E) :
                                                        f.toZeroAtInfty x = f x
                                                        @[simp]
                                                        theorem SchwartzMap.toZeroAtInfty_toBCF {E : Type u_4} {F : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [ProperSpace E] (f : SchwartzMap E F) :
                                                        f.toZeroAtInfty.toBCF = f.toBoundedContinuousFunction

                                                        The inclusion map from Schwartz functions to continuous functions vanishing at infinity as a continuous linear map.

                                                        Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem SchwartzMap.toZeroAtInftyCLM_apply (π•œ : Type u_1) (E : Type u_4) (F : Type u_5) [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [ProperSpace E] [RCLike π•œ] [NormedSpace π•œ F] [SMulCommClass ℝ π•œ F] (f : SchwartzMap E F) (x : E) :
                                                          ((SchwartzMap.toZeroAtInftyCLM π•œ E F) f) x = f x