Documentation

Mathlib.Analysis.Distribution.TestFunction

Continuously differentiable functions with compact support #

This file develops the basic theory of bundled n-times continuously differentiable functions with compact support contained in some open set Ξ©. More explicitly, given normed spaces E and F, an open set Ξ© : Opens E and n : β„•βˆž, we are interested in the space 𝓓^{n}(Ξ©, F) of maps f : E β†’ F such that:

This exists as a bundled type to equip it with the canonical LF topology induced by the inclusions 𝓓_{K}^{n}(Ξ©, F) β†’ 𝓓^{n}(Ξ©, F) (see ContDiffMapSupportedIn). The dual space is then the space of distributions, or "weak solutions" to PDEs, on Ξ©.

Main definitions #

Main statements #

Notation #

Tags #

distributions, test function

structure TestFunction {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] (Ξ© : TopologicalSpace.Opens E) (F : Type u_4) [NormedAddCommGroup F] [NormedSpace ℝ F] (n : β„•βˆž) :
Type (max u_3 u_4)

The type of bundled n-times continuously differentiable maps with compact support

Instances For

    Notation for the space of bundled n-times continuously differentiable maps with compact support.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Notation for the space of "test functions", i.e. bundled smooth (infinitely differentiable) maps with compact support.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        class TestFunctionClass (B : Type u_6) {E : outParam (Type u_7)} [NormedAddCommGroup E] [NormedSpace ℝ E] (Ξ© : outParam (TopologicalSpace.Opens E)) (F : outParam (Type u_8)) [NormedAddCommGroup F] [NormedSpace ℝ F] (n : outParam β„•βˆž) extends DFunLike B E fun (x : E) => F :
        Type (max (max u_6 u_7) u_8)

        TestFunctionClass B Ξ© F n states that B is a type of n-times continuously differentiable functions E β†’ F with compact support contained in Ξ© : Opens E.

        Instances
          Equations
          @[simp]

          See note [custom simps projection].

          Equations
          Instances For
            theorem TestFunction.ext {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} {f g : TestFunction Ξ© F n} (h : βˆ€ (a : E), f a = g a) :
            f = g
            theorem TestFunction.ext_iff {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} {f g : TestFunction Ξ© F n} :
            f = g ↔ βˆ€ (a : E), f a = g a
            def TestFunction.copy {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} (f : TestFunction Ξ© F n) (f' : E β†’ F) (h : f' = ⇑f) :
            TestFunction Ξ© F n

            Copy of a TestFunction with a new toFun equal to the old one. Useful to fix definitional equalities.

            Equations
            • f.copy f' h = { toFun := f', contDiff' := β‹―, hasCompactSupport' := β‹―, tsupport_subset' := β‹― }
            Instances For
              @[simp]
              theorem TestFunction.coe_copy {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} (f : TestFunction Ξ© F n) (f' : E β†’ F) (h : f' = ⇑f) :
              ⇑(f.copy f' h) = f'
              theorem TestFunction.copy_eq {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} (f : TestFunction Ξ© F n) (f' : E β†’ F) (h : f' = ⇑f) :
              f.copy f' h = f
              @[simp]
              theorem TestFunction.coe_toBoundedContinuousFunction {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} (f : TestFunction Ξ© F n) :
              ⇑{ toFun := ⇑f, continuous_toFun := β‹―, map_bounded' := β‹― } = ⇑f
              @[simp]
              theorem TestFunction.coe_mk {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} {f : E β†’ F} {contDiff : ContDiff ℝ (↑n) f} {hasCompactSupport : HasCompactSupport f} {tsupport_subset : tsupport f βŠ† ↑Ω} :
              ⇑{ toFun := f, contDiff' := contDiff, hasCompactSupport' := hasCompactSupport, tsupport_subset' := tsupport_subset } = f
              Equations
              • TestFunction.instZero = { zero := { toFun := 0, contDiff' := β‹―, hasCompactSupport' := β‹―, tsupport_subset' := β‹― } }
              Equations
              @[simp]
              theorem TestFunction.coe_add {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} (f g : TestFunction Ξ© F n) :
              ⇑(f + g) = ⇑f + ⇑g
              Equations
              @[simp]
              theorem TestFunction.coe_neg {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} (f : TestFunction Ξ© F n) :
              ⇑(-f) = -⇑f
              Equations
              @[simp]
              theorem TestFunction.coe_sub {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} (f g : TestFunction Ξ© F n) :
              ⇑(f - g) = ⇑f - ⇑g
              Equations
              • One or more equations did not get rendered due to their size.
              @[simp]
              theorem TestFunction.coe_smul {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} {R : Type u_6} [Semiring R] [Module R F] [SMulCommClass ℝ R F] [ContinuousConstSMul R F] (c : R) (f : TestFunction Ξ© F n) :
              ⇑(c β€’ f) = c β€’ ⇑f
              Equations
              • One or more equations did not get rendered due to their size.

              Coercion as an additive homomorphism.

              Equations
              Instances For
                @[simp]
                theorem TestFunction.coeFnAddMonoidHom_apply {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] (Ξ© : TopologicalSpace.Opens E) (F : Type u_4) [NormedAddCommGroup F] [NormedSpace ℝ F] (n : β„•βˆž) :
                ⇑(coeFnAddMonoidHom Ξ© F n) = fun (f : TestFunction Ξ© F n) => ⇑f
                Equations
                • One or more equations did not get rendered due to their size.
                def TestFunction.ofSupportedIn {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} {K : TopologicalSpace.Compacts E} (K_sub_Ξ© : ↑K βŠ† ↑Ω) (f : ContDiffMapSupportedIn E F n K) :
                TestFunction Ξ© F n

                The natural inclusion 𝓓^{n}_{K}(E, F) β†’ 𝓓^{n}(Ξ©, F) when K βŠ† Ξ©.

                Equations
                Instances For
                  @[simp]
                  theorem TestFunction.coe_ofSupportedIn {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] {n : β„•βˆž} {K : TopologicalSpace.Compacts E} (K_sub_Ξ© : ↑K βŠ† ↑Ω) (f : ContDiffMapSupportedIn E F n K) :
                  ⇑(ofSupportedIn K_sub_Ξ© f) = ⇑f

                  The "original topology" on 𝓓^{n}(Ξ©, F), defined as the supremum over all compacts K βŠ† Ξ© of the topology on 𝓓^{n}_{K}(E, F). In other words, this topology makes 𝓓^{n}(Ξ©, F) the inductive limit of the 𝓓^{n}_{K}(E, F)s in the category of topological spaces.

                  Note that this has no reason to be a locally convex (or even vector space) topology. For this reason, we actually endow 𝓓^{n}(Ξ©, F) with another topology, namely the finest locally convex topology which is coarser than this original topology. See TestFunction.topologicalSpace.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    The canonical LF topology on 𝓓^{n}(Ξ©, F). This makes 𝓓^{n}(Ξ©, F) the inductive limit of the 𝓓^{n}_{K}(E, F)s in the category of locally convex topological vector spaces (over ℝ). See TestFunction.continuous_iff_continuous_comp for the corresponding universal property.

                    More concretely, this is defined as the infimum of all locally convex topologies which are coarser than the "original topology" TestFunction.originalTop, which corresponds to taking the inductive limit in the category of topological spaces.

                    Equations
                    • One or more equations did not get rendered due to their size.

                    Fix a locally convex topology t on 𝓓^{n}(Ξ©, F). t is coarser than the canonical topology on 𝓓^{n}(Ξ©, F) if and only if it is coarser than the "original topology" given by TestFunction.originalTop.

                    For every compact K βŠ† Ξ©, the inclusion map 𝓓^{n}_{K}(E, F) β†’ 𝓓^{n}(Ξ©, F) is continuous. It is in fact a topological embedding, though this fact is not in Mathlib yet.

                    def TestFunction.ofSupportedInCLM (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedSpace π•œ F] {n : β„•βˆž} [SMulCommClass ℝ π•œ F] {K : TopologicalSpace.Compacts E} (K_sub_Ξ© : ↑K βŠ† ↑Ω) :

                    The natural inclusion 𝓓^{n}_{K}(E, F) β†’ 𝓓^{n}(Ξ©, F), when K βŠ† Ξ©, as a continuous linear map.

                    Equations
                    Instances For
                      @[deprecated TestFunction.ofSupportedInCLM (since := "2025-12-10")]
                      def TestFunction.ofSupportedInLM (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedSpace π•œ F] {n : β„•βˆž} [SMulCommClass ℝ π•œ F] {K : TopologicalSpace.Compacts E} (K_sub_Ξ© : ↑K βŠ† ↑Ω) :

                      Alias of TestFunction.ofSupportedInCLM.


                      The natural inclusion 𝓓^{n}_{K}(E, F) β†’ 𝓓^{n}(Ξ©, F), when K βŠ† Ξ©, as a continuous linear map.

                      Equations
                      Instances For
                        @[simp]
                        theorem TestFunction.coe_ofSupportedInCLM {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedSpace π•œ F] {n : β„•βˆž} [SMulCommClass ℝ π•œ F] {K : TopologicalSpace.Compacts E} (K_sub_Ξ© : ↑K βŠ† ↑Ω) :
                        ⇑(ofSupportedInCLM π•œ K_sub_Ξ©) = ofSupportedIn K_sub_Ξ©
                        @[deprecated TestFunction.coe_ofSupportedInCLM (since := "2025-12-10")]
                        theorem TestFunction.coe_ofSupportedInLM {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedSpace π•œ F] {n : β„•βˆž} [SMulCommClass ℝ π•œ F] {K : TopologicalSpace.Compacts E} (K_sub_Ξ© : ↑K βŠ† ↑Ω) :
                        ⇑(ofSupportedInCLM π•œ K_sub_Ξ©) = ofSupportedIn K_sub_Ξ©

                        Alias of TestFunction.coe_ofSupportedInCLM.

                        theorem TestFunction.continuous_iff_continuous_comp {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedSpace π•œ F] {n : β„•βˆž} {V : Type u_6} [AddCommGroup V] [Module ℝ V] [t : TopologicalSpace V] [IsTopologicalAddGroup V] [ContinuousSMul ℝ V] [LocallyConvexSpace ℝ V] [Algebra ℝ π•œ] [IsScalarTower ℝ π•œ F] [Module π•œ V] [IsScalarTower ℝ π•œ V] (f : TestFunction Ξ© F n β†’β‚—[π•œ] V) :
                        Continuous ⇑f ↔ βˆ€ (K : TopologicalSpace.Compacts E) (K_sub_Ξ© : ↑K βŠ† ↑Ω), Continuous (⇑f ∘ ofSupportedIn K_sub_Ξ©)

                        The universal property of the topology on 𝓓^{n}(Ξ©, F): a linear map from 𝓓^{n}(Ξ©, F) to a locally convex topological vector space is continuous if and only if its precomposition with the inclusion ofSupportedIn K_sub_Ξ© : 𝓓^{n}_{K}(E, F) β†’ 𝓓^{n}(Ξ©, F) is continuous for every compact K βŠ† Ξ©.

                        def TestFunction.mkCLM (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedSpace π•œ F] {n : β„•βˆž} {V : Type u_6} [AddCommGroup V] [Module ℝ V] [t : TopologicalSpace V] [IsTopologicalAddGroup V] [ContinuousSMul ℝ V] [LocallyConvexSpace ℝ V] [Algebra ℝ π•œ] [IsScalarTower ℝ π•œ F] [Module π•œ V] [IsScalarTower ℝ π•œ V] (toFun : TestFunction Ξ© F n β†’ V) (map_add : βˆ€ (f g : TestFunction Ξ© F n), toFun (f + g) = toFun f + toFun g) (map_smul : βˆ€ (c : π•œ) (f : TestFunction Ξ© F n), toFun (c β€’ f) = c β€’ toFun f) (cont : βˆ€ (K : TopologicalSpace.Compacts E) (K_sub_Ξ© : ↑K βŠ† ↑Ω), Continuous (toFun ∘ ofSupportedIn K_sub_Ξ©)) :
                        TestFunction Ξ© F n β†’L[π•œ] V

                        Reformulation of the universal property of the topology on 𝓓^{n}(Ξ©, F), in the form of a custom constructor for continuous linear maps 𝓓^{n}(Ξ©, F) β†’L[π•œ] V, where V is an arbitrary locally convex topological vector space.

                        Equations
                        • TestFunction.mkCLM π•œ toFun map_add map_smul cont = { toFun := toFun, map_add' := map_add, map_smul' := map_smul, cont := β‹― }
                        Instances For
                          @[simp]
                          theorem TestFunction.mkCLM_apply (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedSpace π•œ F] {n : β„•βˆž} {V : Type u_6} [AddCommGroup V] [Module ℝ V] [t : TopologicalSpace V] [IsTopologicalAddGroup V] [ContinuousSMul ℝ V] [LocallyConvexSpace ℝ V] [Algebra ℝ π•œ] [IsScalarTower ℝ π•œ F] [Module π•œ V] [IsScalarTower ℝ π•œ V] (toFun : TestFunction Ξ© F n β†’ V) (map_add : βˆ€ (f g : TestFunction Ξ© F n), toFun (f + g) = toFun f + toFun g) (map_smul : βˆ€ (c : π•œ) (f : TestFunction Ξ© F n), toFun (c β€’ f) = c β€’ toFun f) (cont : βˆ€ (K : TopologicalSpace.Compacts E) (K_sub_Ξ© : ↑K βŠ† ↑Ω), Continuous (toFun ∘ ofSupportedIn K_sub_Ξ©)) (a✝ : TestFunction Ξ© F n) :
                          (TestFunction.mkCLM π•œ toFun map_add map_smul cont) a✝ = toFun a✝

                          The inclusion of the space 𝓓^{n}(Ξ©, F) into the space E →ᡇ F of bounded continuous functions as a continuous π•œ-linear map.

                          Equations
                          Instances For
                            @[simp]
                            theorem TestFunction.toBoundedContinuousFunctionCLM_apply (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedSpace π•œ F] {n : β„•βˆž} [Algebra ℝ π•œ] [IsScalarTower ℝ π•œ F] (x : TestFunction Ξ© F n) :
                            (toBoundedContinuousFunctionCLM π•œ) x = { toFun := ⇑x, continuous_toFun := β‹―, map_bounded' := β‹― }
                            theorem TestFunction.toBoundedContinuousFunctionCLM_eq_of_scalars {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedSpace π•œ F] {n : β„•βˆž} [Algebra ℝ π•œ] [IsScalarTower ℝ π•œ F] (π•œ' : Type u_6) [NontriviallyNormedField π•œ'] [NormedSpace π•œ' F] [Algebra ℝ π•œ'] [IsScalarTower ℝ π•œ' F] :
                            noncomputable def TestFunction.postcompCLM {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedSpace π•œ F] {F' : Type u_5} [NormedAddCommGroup F'] [NormedSpace ℝ F'] [NormedSpace π•œ F'] {n : β„•βˆž} [Algebra ℝ π•œ] [IsScalarTower ℝ π•œ F] [IsScalarTower ℝ π•œ F'] (T : F β†’L[π•œ] F') :
                            TestFunction Ξ© F n β†’L[π•œ] TestFunction Ξ© F' n

                            Given T : F β†’L[π•œ] F', postcompCLM T is the continuous π•œ-linear-map sending f : 𝓓^{n}(Ξ©, F) to T ∘ f as an element of 𝓓^{n}(Ξ©, F').

                            Equations
                            Instances For
                              @[simp]
                              theorem TestFunction.postcompCLM_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_3} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ξ© : TopologicalSpace.Opens E} {F : Type u_4} [NormedAddCommGroup F] [NormedSpace ℝ F] [NormedSpace π•œ F] {F' : Type u_5} [NormedAddCommGroup F'] [NormedSpace ℝ F'] [NormedSpace π•œ F'] {n : β„•βˆž} [Algebra ℝ π•œ] [IsScalarTower ℝ π•œ F] [IsScalarTower ℝ π•œ F'] (T : F β†’L[π•œ] F') (f : TestFunction Ξ© F n) :
                              ⇑((postcompCLM T) f) = ⇑T ∘ ⇑f