HepLean Documentation

Mathlib.Analysis.Calculus.FDeriv.Measurable

Derivative is measurable #

In this file we prove that the derivative of any function with complete codomain is a measurable function. Namely, we prove:

We also show the same results for the right derivative on the real line (see measurable_derivWithin_Ici and measurable_derivWithin_Ioi), following the same proof strategy.

We also prove measurability statements for functions depending on a parameter: for f : α → E → F, we show the measurability of (p : α × E) ↦ fderiv 𝕜 (f p.1) p.2. This requires additional assumptions. We give versions of the above statements (appending with_param to their names) when f is continuous and E is locally compact.

Implementation #

We give a proof that avoids second-countability issues, by expressing the differentiability set as a function of open sets in the following way. Define A (L, r, ε) to be the set of points where, on a ball of radius roughly r around x, the function is uniformly approximated by the linear map L, up to ε r. It is an open set. Let also B (L, r, s, ε) = A (L, r, ε) ∩ A (L, s, ε): we require that at two possibly different scales r and s, the function is well approximated by the linear map L. It is also open.

We claim that the differentiability set of f is exactly D = ⋂ ε > 0, ⋃ δ > 0, ⋂ r, s < δ, ⋃ L, B (L, r, s, ε). In other words, for any ε > 0, we require that there is a size δ such that, for any two scales below this size, the function is well approximated by a linear map, common to the two scales.

The set ⋃ L, B (L, r, s, ε) is open, as a union of open sets. Converting the intersections and unions to countable ones (using real numbers of the form 2 ^ (-n)), it follows that the differentiability set is measurable.

To prove the claim, there are two inclusions. One is trivial: if the function is differentiable at x, then x belongs to D (just take L to be the derivative, and use that the differentiability exactly says that the map is well approximated by L). This is proved in mem_A_of_differentiable and differentiable_set_subset_D.

For the other direction, the difficulty is that L in the union may depend on ε, r, s. The key point is that, in fact, it doesn't depend too much on them. First, if x belongs both to A (L, r, ε) and A (L', r, ε), then L and L' have to be close on a shell, and thus ‖L - L'‖ is bounded by ε (see norm_sub_le_of_mem_A). Assume now x ∈ D. If one has two maps L and L' such that x belongs to A (L, r, ε) and to A (L', r', ε'), one deduces that L is close to L' by arguing as follows. Consider another scale s smaller than r and r'. Take a linear map L₁ that approximates f around x both at scales r and s w.r.t. ε (it exists as x belongs to D). Take also L₂ that approximates f around x both at scales r' and s w.r.t. ε'. Then L₁ is close to L (as they are close on a shell of radius r), and L₂ is close to L₁ (as they are close on a shell of radius s), and L' is close to L₂ (as they are close on a shell of radius r'). It follows that L is close to L', as we claimed.

It follows that the different approximating linear maps that show up form a Cauchy sequence when ε tends to 0. When the target space is complete, this sequence converges, to a limit f'. With the same kind of arguments, one checks that f is differentiable with derivative f'.

To show that the derivative itself is measurable, add in the definition of B and D a set K of continuous linear maps to which L should belong. Then, when K is complete, the set D K is exactly the set of points where f is differentiable with a derivative in K.

Tags #

derivative, measurable function, Borel σ-algebra

def FDerivMeasurableAux.A {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (f : EF) (L : E →L[𝕜] F) (r : ) (ε : ) :
Set E

The set A f L r ε is the set of points x around which the function f is well approximated at scale r by the linear map L, up to an error ε. We tweak the definition to make sure that this is an open set.

Equations
Instances For
    def FDerivMeasurableAux.B {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (f : EF) (K : Set (E →L[𝕜] F)) (r : ) (s : ) (ε : ) :
    Set E

    The set B f K r s ε is the set of points x around which there exists a continuous linear map L belonging to K (a given set of continuous linear maps) that approximates well the function f (up to an error ε), simultaneously at scales r and s.

    Equations
    Instances For
      def FDerivMeasurableAux.D {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (f : EF) (K : Set (E →L[𝕜] F)) :
      Set E

      The set D f K is a complicated set constructed using countable intersections and unions. Its main use is that, when K is complete, it is exactly the set of points where f is differentiable, with a derivative in K.

      Equations
      Instances For
        theorem FDerivMeasurableAux.isOpen_A {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} (L : E →L[𝕜] F) (r : ) (ε : ) :
        theorem FDerivMeasurableAux.isOpen_B {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {K : Set (E →L[𝕜] F)} {r : } {s : } {ε : } :
        theorem FDerivMeasurableAux.A_mono {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} (L : E →L[𝕜] F) (r : ) {ε : } {δ : } (h : ε δ) :
        theorem FDerivMeasurableAux.le_of_mem_A {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {r : } {ε : } {L : E →L[𝕜] F} {x : E} (hx : x FDerivMeasurableAux.A f L r ε) {y : E} {z : E} (hy : y Metric.closedBall x (r / 2)) (hz : z Metric.closedBall x (r / 2)) :
        f z - f y - L (z - y) ε * r
        theorem FDerivMeasurableAux.mem_A_of_differentiable {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {ε : } (hε : 0 < ε) {x : E} (hx : DifferentiableAt 𝕜 f x) :
        R > 0, rSet.Ioo 0 R, x FDerivMeasurableAux.A f (fderiv 𝕜 f x) r ε
        theorem FDerivMeasurableAux.norm_sub_le_of_mem_A {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {c : 𝕜} (hc : 1 < c) {r : } {ε : } (hε : 0 < ε) (hr : 0 < r) {x : E} {L₁ : E →L[𝕜] F} {L₂ : E →L[𝕜] F} (h₁ : x FDerivMeasurableAux.A f L₁ r ε) (h₂ : x FDerivMeasurableAux.A f L₂ r ε) :
        L₁ - L₂ 4 * c * ε
        theorem FDerivMeasurableAux.differentiable_set_subset_D {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} (K : Set (E →L[𝕜] F)) :
        {x : E | DifferentiableAt 𝕜 f x fderiv 𝕜 f x K} FDerivMeasurableAux.D f K

        Easy inclusion: a differentiability point with derivative in K belongs to D f K.

        theorem FDerivMeasurableAux.D_subset_differentiable_set {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {K : Set (E →L[𝕜] F)} (hK : IsComplete K) :
        FDerivMeasurableAux.D f K {x : E | DifferentiableAt 𝕜 f x fderiv 𝕜 f x K}

        Harder inclusion: at a point in D f K, the function f has a derivative, in K.

        theorem FDerivMeasurableAux.differentiable_set_eq_D {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} (K : Set (E →L[𝕜] F)) (hK : IsComplete K) :
        {x : E | DifferentiableAt 𝕜 f x fderiv 𝕜 f x K} = FDerivMeasurableAux.D f K
        theorem measurableSet_of_differentiableAt_of_isComplete (𝕜 : Type u_1) [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (f : EF) [MeasurableSpace E] [OpensMeasurableSpace E] {K : Set (E →L[𝕜] F)} (hK : IsComplete K) :
        MeasurableSet {x : E | DifferentiableAt 𝕜 f x fderiv 𝕜 f x K}

        The set of differentiability points of a function, with derivative in a given complete set, is Borel-measurable.

        The set of differentiability points of a function taking values in a complete space is Borel-measurable.

        theorem measurable_fderiv (𝕜 : Type u_1) [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (f : EF) [MeasurableSpace E] [OpensMeasurableSpace E] [CompleteSpace F] :
        theorem measurable_fderiv_apply_const (𝕜 : Type u_1) [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (f : EF) [MeasurableSpace E] [OpensMeasurableSpace E] [CompleteSpace F] [MeasurableSpace F] [BorelSpace F] (y : E) :
        Measurable fun (x : E) => (fderiv 𝕜 f x) y
        def RightDerivMeasurableAux.A {F : Type u_1} [NormedAddCommGroup F] [NormedSpace F] (f : F) (L : F) (r : ) (ε : ) :

        The set A f L r ε is the set of points x around which the function f is well approximated at scale r by the linear map h ↦ h • L, up to an error ε. We tweak the definition to make sure that this is open on the right.

        Equations
        Instances For
          def RightDerivMeasurableAux.B {F : Type u_1} [NormedAddCommGroup F] [NormedSpace F] (f : F) (K : Set F) (r : ) (s : ) (ε : ) :

          The set B f K r s ε is the set of points x around which there exists a vector L belonging to K (a given set of vectors) such that h • L approximates well f (x + h) (up to an error ε), simultaneously at scales r and s.

          Equations
          Instances For
            def RightDerivMeasurableAux.D {F : Type u_1} [NormedAddCommGroup F] [NormedSpace F] (f : F) (K : Set F) :

            The set D f K is a complicated set constructed using countable intersections and unions. Its main use is that, when K is complete, it is exactly the set of points where f is differentiable, with a derivative in K.

            Equations
            Instances For
              theorem RightDerivMeasurableAux.B_mem_nhdsWithin_Ioi {F : Type u_1} [NormedAddCommGroup F] [NormedSpace F] {f : F} {K : Set F} {r : } {s : } {ε : } {x : } (hx : x RightDerivMeasurableAux.B f K r s ε) :
              theorem RightDerivMeasurableAux.measurableSet_B {F : Type u_1} [NormedAddCommGroup F] [NormedSpace F] {f : F} {K : Set F} {r : } {s : } {ε : } :
              theorem RightDerivMeasurableAux.A_mono {F : Type u_1} [NormedAddCommGroup F] [NormedSpace F] {f : F} (L : F) (r : ) {ε : } {δ : } (h : ε δ) :
              theorem RightDerivMeasurableAux.le_of_mem_A {F : Type u_1} [NormedAddCommGroup F] [NormedSpace F] {f : F} {r : } {ε : } {L : F} {x : } (hx : x RightDerivMeasurableAux.A f L r ε) {y : } {z : } (hy : y Set.Icc x (x + r / 2)) (hz : z Set.Icc x (x + r / 2)) :
              f z - f y - (z - y) L ε * r
              theorem RightDerivMeasurableAux.mem_A_of_differentiable {F : Type u_1} [NormedAddCommGroup F] [NormedSpace F] {f : F} {ε : } (hε : 0 < ε) {x : } (hx : DifferentiableWithinAt f (Set.Ici x) x) :
              R > 0, rSet.Ioo 0 R, x RightDerivMeasurableAux.A f (derivWithin f (Set.Ici x) x) r ε
              theorem RightDerivMeasurableAux.norm_sub_le_of_mem_A {F : Type u_1} [NormedAddCommGroup F] [NormedSpace F] {f : F} {r : } {x : } (hr : 0 < r) (ε : ) {L₁ : F} {L₂ : F} (h₁ : x RightDerivMeasurableAux.A f L₁ r ε) (h₂ : x RightDerivMeasurableAux.A f L₂ r ε) :
              L₁ - L₂ 4 * ε

              Easy inclusion: a differentiability point with derivative in K belongs to D f K.

              Harder inclusion: at a point in D f K, the function f has a derivative, in K.

              The set of right differentiability points of a function, with derivative in a given complete set, is Borel-measurable.

              The set of right differentiability points of a function taking values in a complete space is Borel-measurable.

              The set of right differentiability points of a function taking values in a complete space is Borel-measurable.

              theorem FDerivMeasurableAux.isOpen_A_with_param {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [LocallyCompactSpace E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {α : Type u_4} [TopologicalSpace α] {f : αEF} {r : } {s : } (hf : Continuous (Function.uncurry f)) (L : E →L[𝕜] F) :
              IsOpen {p : α × E | p.2 FDerivMeasurableAux.A (f p.1) L r s}
              theorem FDerivMeasurableAux.isOpen_B_with_param {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [LocallyCompactSpace E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {α : Type u_4} [TopologicalSpace α] {f : αEF} {r : } {s : } {t : } (hf : Continuous (Function.uncurry f)) (K : Set (E →L[𝕜] F)) :
              IsOpen {p : α × E | p.2 FDerivMeasurableAux.B (f p.1) K r s t}
              theorem measurableSet_of_differentiableAt_of_isComplete_with_param {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [LocallyCompactSpace E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {α : Type u_4} [TopologicalSpace α] {f : αEF} [MeasurableSpace α] [OpensMeasurableSpace α] [MeasurableSpace E] [OpensMeasurableSpace E] (hf : Continuous (Function.uncurry f)) {K : Set (E →L[𝕜] F)} (hK : IsComplete K) :
              MeasurableSet {p : α × E | DifferentiableAt 𝕜 (f p.1) p.2 fderiv 𝕜 (f p.1) p.2 K}

              The set of differentiability points of a continuous function depending on a parameter taking values in a complete space is Borel-measurable.

              theorem measurable_fderiv_with_param (𝕜 : Type u_1) [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [LocallyCompactSpace E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {α : Type u_4} [TopologicalSpace α] {f : αEF} [MeasurableSpace α] [OpensMeasurableSpace α] [MeasurableSpace E] [OpensMeasurableSpace E] [CompleteSpace F] (hf : Continuous (Function.uncurry f)) :
              Measurable fun (p : α × E) => fderiv 𝕜 (f p.1) p.2
              theorem measurable_fderiv_apply_const_with_param (𝕜 : Type u_1) [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [LocallyCompactSpace E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {α : Type u_4} [TopologicalSpace α] {f : αEF} [MeasurableSpace α] [OpensMeasurableSpace α] [MeasurableSpace E] [OpensMeasurableSpace E] [CompleteSpace F] [MeasurableSpace F] [BorelSpace F] (hf : Continuous (Function.uncurry f)) (y : E) :
              Measurable fun (p : α × E) => (fderiv 𝕜 (f p.1) p.2) y
              theorem measurable_deriv_with_param {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {α : Type u_4} [TopologicalSpace α] [MeasurableSpace α] [OpensMeasurableSpace α] [CompleteSpace F] [LocallyCompactSpace 𝕜] [MeasurableSpace 𝕜] [OpensMeasurableSpace 𝕜] [MeasurableSpace F] [BorelSpace F] {f : α𝕜F} (hf : Continuous (Function.uncurry f)) :
              Measurable fun (p : α × 𝕜) => deriv (f p.1) p.2
              theorem aemeasurable_deriv_with_param {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {α : Type u_4} [TopologicalSpace α] [MeasurableSpace α] [OpensMeasurableSpace α] [CompleteSpace F] [LocallyCompactSpace 𝕜] [MeasurableSpace 𝕜] [OpensMeasurableSpace 𝕜] [MeasurableSpace F] [BorelSpace F] {f : α𝕜F} (hf : Continuous (Function.uncurry f)) (μ : MeasureTheory.Measure (α × 𝕜)) :
              AEMeasurable (fun (p : α × 𝕜) => deriv (f p.1) p.2) μ