Documentation

CatDG.ForMathlib.Hadamard

Hadamard's lemma #

Here we prove variants of Hadamard's lemma, stating that a smooth function f : E β†’ F between sufficiently nice vector spaces can for any point x and basis b be written as y ↦ f x + βˆ‘ i, b.repr (y - x) i β€’ g i y where b.repr (y - x) i is the i-th component of y - x in the basis b and each g i is a smooth function E β†’ F. We do this by providing explicit functions hadamardFun f x (b i) to serve as the g i, characterising their smoothness and showing that f can be written in terms of them.

The functions we consider are specifically functions from finite-dimensional spaces to Banach spaces that are continuously differentiable on an open star-convex set.

See https://en.wikipedia.org/wiki/Hadamard%27s_lemma and https://ncatlab.org/nlab/show/Hadamard+lemma.

theorem ContinuousOn.intervalIntegral {E : Type u} [NormedAddCommGroup E] [NormedSpace ℝ E] {X : Type u_1} [TopologicalSpace X] {ΞΌ : MeasureTheory.Measure ℝ} [MeasureTheory.NoAtoms ΞΌ] [MeasureTheory.IsLocallyFiniteMeasure ΞΌ] {f : X Γ— ℝ β†’ E} {u : Set X} {aβ‚€ bβ‚€ : ℝ} (hf : ContinuousOn f (u Γ—Λ’ Set.uIcc aβ‚€ bβ‚€)) :
ContinuousOn (fun (x : X) => ∫ (t : ℝ) in aβ‚€..bβ‚€, f (x, t) βˆ‚ΞΌ) u
def nhdsSetWithin {X : Type u_1} [TopologicalSpace X] (s t : Set X) :

The "neighbourhood within" filter for sets. Elements of 𝓝[t] s are sets containing the intersection of t and a neighbourhood of s.

Equations
Instances For

    The "neighbourhood within" filter for sets. Elements of 𝓝[t] s are sets containing the intersection of t and a neighbourhood of s.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem nhdsSetWithin_mono_left {X : Type u_1} [TopologicalSpace X] {s s' t : Set X} (h : s βŠ† s') :
      theorem nhdsSetWithin_mono_right {X : Type u_1} [TopologicalSpace X] {s t t' : Set X} (h : t βŠ† t') :
      theorem nhdsSetWithin_hasBasis {X : Type u_1} [TopologicalSpace X] {ΞΉ : Sort u_3} {p : ΞΉ β†’ Prop} {s' : ΞΉ β†’ Set X} {s : Set X} (h : (nhdsSet s).HasBasis p s') (t : Set X) :
      (nhdsSetWithin s t).HasBasis p fun (i : ι) => s' i ∩ t
      theorem nhdsSetWithin_basis_open {X : Type u_1} [TopologicalSpace X] (s t : Set X) :
      (nhdsSetWithin s t).HasBasis (fun (u : Set X) => IsOpen u ∧ s βŠ† u) fun (u : Set X) => u ∩ t
      theorem mem_nhdsSetWithin {X : Type u_1} [TopologicalSpace X] {s t u : Set X} :
      u ∈ nhdsSetWithin s t ↔ βˆƒ (v : Set X), IsOpen v ∧ s βŠ† v ∧ v ∩ t βŠ† u
      @[simp]
      theorem nhdsSetWithin_singleton {X : Type u_1} [TopologicalSpace X] {x : X} {s : Set X} :
      theorem ContinuousOn.preimage_mem_nhdsSetWithin {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {f : X β†’ Y} {s : Set X} (hf : ContinuousOn f s) {t u t' : Set Y} (h : u ∈ nhdsSetWithin t t') :
      theorem ContinuousOn.preimage_mem_nhdsSetWithin_of_mem_nhdsSet {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {f : X β†’ Y} {s : Set X} (hf : ContinuousOn f s) {t u : Set Y} (h : u ∈ nhdsSet t) :

      If f is continuous on s and u is a neighbourhood of t, then f ⁻¹' u is a neighbourhood of s ∩ f ⁻¹' t within s.

      theorem IsCompact.nhdsSetWithin_prod_eq {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {s s' : Set X} {t t' : Set Y} (hs : IsCompact s) (ht : IsCompact t) :
      theorem generalized_tube_lemma' {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {s s' : Set X} (hs : IsCompact s) {t t' : Set Y} (ht : IsCompact t) {n : Set (X Γ— Y)} (hn : n ∈ nhdsSetWithin (s Γ—Λ’ t) (s' Γ—Λ’ t')) :
      βˆƒ u ∈ nhdsSetWithin s s', βˆƒ v ∈ nhdsSetWithin t t', u Γ—Λ’ v βŠ† n

      Variant of generalized_tube_lemma in terms of nhdsSetWithin.

      theorem generalized_tube_lemma_left {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {s s' : Set X} (hs : IsCompact s) {t : Set Y} (ht : IsCompact t) {n : Set (X Γ— Y)} (hn : n ∈ nhdsSetWithin (s Γ—Λ’ t) (s' Γ—Λ’ t)) :
      βˆƒ u ∈ nhdsSetWithin s s', u Γ—Λ’ t βŠ† n

      Variant of generalized_tube_lemma that only replaces the set in one direction.

      theorem generalized_tube_lemma_right {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {s : Set X} (hs : IsCompact s) {t t' : Set Y} (ht : IsCompact t) {n : Set (X Γ— Y)} (hn : n ∈ nhdsSetWithin (s Γ—Λ’ t) (s Γ—Λ’ t')) :
      βˆƒ u ∈ nhdsSetWithin t t', s Γ—Λ’ u βŠ† n

      Variant of generalized_tube_lemma that only replaces the set in one direction.

      theorem intervalIntegral.hasFDerivAt_integral_of_contDiffOn {ΞΌ : MeasureTheory.Measure ℝ} [MeasureTheory.IsLocallyFiniteMeasure ΞΌ] {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedSpace ℝ E] {H : Type u_2} [NormedAddCommGroup H] [NormedSpace ℝ H] {f : H Γ— ℝ β†’ E} {xβ‚€ : H} {u : Set H} (hu : u ∈ nhds xβ‚€) {a b : ℝ} (hF : ContDiffOn ℝ 1 f (u Γ—Λ’ Set.uIcc a b)) :
      HasFDerivAt (fun (x : H) => ∫ (t : ℝ) in a..b, f (x, t) βˆ‚ΞΌ) (∫ (t : ℝ) in a..b, fderiv ℝ (fun (x : H) => f (x, t)) xβ‚€ βˆ‚ΞΌ) xβ‚€

      A convenient special case of intervalIntegral.hasFDerivAt_integral_of_dominated_of_fderiv_le: if f : H Γ— ℝ β†’ E is continuously differentiable on u Γ—Λ’ [[a, b]] for a neighbourhood u of xβ‚€, then a derivative of fun x => ∫ t in a..b, f (x, t) βˆ‚ΞΌ in xβ‚€ can be computed as ∫ t in a..b, fderiv ℝ (fun x ↦ f (x, t)) xβ‚€ βˆ‚ΞΌ.

      theorem ContDiffOn.intervalIntegral {E F : Type u} [NormedAddCommGroup E] [NormedAddCommGroup F] [NormedSpace ℝ E] [NormedSpace ℝ F] {ΞΌ : MeasureTheory.Measure ℝ} [MeasureTheory.IsLocallyFiniteMeasure ΞΌ] [MeasureTheory.NoAtoms ΞΌ] {f : E Γ— ℝ β†’ F} {u : Set E} (hu : IsOpen u) {a b : ℝ} {n : β„•βˆž} (hf : ContDiffOn ℝ (↑n) f (u Γ—Λ’ Set.uIcc a b)) :
      ContDiffOn ℝ (↑n) (fun (x : E) => ∫ (t : ℝ) in a..b, f (x, t) βˆ‚ΞΌ) u
      noncomputable def hadamardFun {E F : Type u} [NormedAddCommGroup E] [NormedAddCommGroup F] [NormedSpace ℝ E] [NormedSpace ℝ F] (f : E β†’ F) (x b : E) :
      E β†’ F

      The function appearing in Hadamard's lemma applied to the function f at x for a basis vector b.

      Equations
      Instances For
        theorem ContDiffOn.hadamardFun {E F : Type u} [NormedAddCommGroup E] [NormedAddCommGroup F] [NormedSpace ℝ E] [NormedSpace ℝ F] {x : E} {s : Set E} (hs : IsOpen s) (hs' : StarConvex ℝ x s) {f : E β†’ F} {n m : β„•βˆž} (hf : ContDiffOn ℝ (↑n) f s) (hm : m + 1 ≀ n) (b : E) :
        ContDiffOn ℝ (↑m) (hadamardFun f x b) s
        theorem ContDiff.hadamardFun {E F : Type u} [NormedAddCommGroup E] [NormedAddCommGroup F] [NormedSpace ℝ E] [NormedSpace ℝ F] {f : E β†’ F} {n m : β„•βˆž} (hf : ContDiff ℝ (↑n) f) (hm : m + 1 ≀ n) (x b : E) :
        ContDiff ℝ (↑m) (hadamardFun f x b)
        theorem eqOn_add_sum_hadamardFun {E F : Type u} [NormedAddCommGroup E] [NormedAddCommGroup F] [NormedSpace ℝ E] [NormedSpace ℝ F] [CompleteSpace F] {x : E} {s : Set E} (hs : IsOpen s) (hs' : StarConvex ℝ x s) {f : E β†’ F} {n : WithTop β„•βˆž} (hf : ContDiffOn ℝ n f s) (hn : 1 ≀ n) {ΞΉ : Type u_1} [Fintype ΞΉ] (b : Module.Basis ΞΉ ℝ E) :
        Set.EqOn f (fun (y : E) => f x + βˆ‘ i : ΞΉ, (b.repr (y - x)) i β€’ hadamardFun f x (b i) y) s
        theorem eq_add_sum_hadamardFun {E F : Type u} [NormedAddCommGroup E] [NormedAddCommGroup F] [NormedSpace ℝ E] [NormedSpace ℝ F] [CompleteSpace F] {x : E} {f : E β†’ F} {n : WithTop β„•βˆž} (hf : ContDiff ℝ n f) (hn : 1 ≀ n) {ΞΉ : Type u_1} [Fintype ΞΉ] (b : Module.Basis ΞΉ ℝ E) :
        f = fun (y : E) => f x + βˆ‘ i : ΞΉ, (b.repr (y - x)) i β€’ hadamardFun f x (b i) y