Documentation

Mathlib.Analysis.Calculus.ContDiff.Bounds

Bounds on higher derivatives #

norm_iteratedFDeriv_comp_le gives the bound n! * C * D ^ n for the n-th derivative of g ∘ f assuming that the derivatives of g are bounded by C and the i-th derivative of f is bounded by D ^ i.

Quantitative bounds #

theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear_aux {π•œ : Type u_1} [NontriviallyNormedField π•œ] {Du Eu Fu Gu : Type u} [NormedAddCommGroup Du] [NormedSpace π•œ Du] [NormedAddCommGroup Eu] [NormedSpace π•œ Eu] [NormedAddCommGroup Fu] [NormedSpace π•œ Fu] [NormedAddCommGroup Gu] [NormedSpace π•œ Gu] (B : Eu β†’L[π•œ] Fu β†’L[π•œ] Gu) {f : Du β†’ Eu} {g : Du β†’ Fu} {n : β„•} {s : Set Du} {x : Du} (hf : ContDiffOn π•œ (↑n) f s) (hg : ContDiffOn π•œ (↑n) g s) (hs : UniqueDiffOn π•œ s) (hx : x ∈ s) :
β€–iteratedFDerivWithin π•œ n (fun (y : Du) => (B (f y)) (g y)) s xβ€– ≀ β€–Bβ€– * βˆ‘ i ∈ Finset.range (n + 1), ↑(n.choose i) * β€–iteratedFDerivWithin π•œ i f s xβ€– * β€–iteratedFDerivWithin π•œ (n - i) g s xβ€–

Bounding the norm of the iterated derivative of B (f x) (g x) within a set in terms of the iterated derivatives of f and g when B is bilinear. This lemma is an auxiliary version assuming all spaces live in the same universe, to enable an induction. Use instead ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear that removes this assumption.

theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear {π•œ : Type u_1} [NontriviallyNormedField π•œ] {D : Type uD} [NormedAddCommGroup D] [NormedSpace π•œ D] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] (B : E β†’L[π•œ] F β†’L[π•œ] G) {f : D β†’ E} {g : D β†’ F} {N : WithTop β„•βˆž} {s : Set D} {x : D} (hf : ContDiffOn π•œ N f s) (hg : ContDiffOn π•œ N g s) (hs : UniqueDiffOn π•œ s) (hx : x ∈ s) {n : β„•} (hn : ↑n ≀ N) :
β€–iteratedFDerivWithin π•œ n (fun (y : D) => (B (f y)) (g y)) s xβ€– ≀ β€–Bβ€– * βˆ‘ i ∈ Finset.range (n + 1), ↑(n.choose i) * β€–iteratedFDerivWithin π•œ i f s xβ€– * β€–iteratedFDerivWithin π•œ (n - i) g s xβ€–

Bounding the norm of the iterated derivative of B (f x) (g x) within a set in terms of the iterated derivatives of f and g when B is bilinear: β€–D^n (x ↦ B (f x) (g x))β€– ≀ β€–Bβ€– βˆ‘_{k ≀ n} n.choose k β€–D^k fβ€– β€–D^{n-k} gβ€–

theorem ContinuousLinearMap.norm_iteratedFDeriv_le_of_bilinear {π•œ : Type u_1} [NontriviallyNormedField π•œ] {D : Type uD} [NormedAddCommGroup D] [NormedSpace π•œ D] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] (B : E β†’L[π•œ] F β†’L[π•œ] G) {f : D β†’ E} {g : D β†’ F} {N : WithTop β„•βˆž} (hf : ContDiff π•œ N f) (hg : ContDiff π•œ N g) (x : D) {n : β„•} (hn : ↑n ≀ N) :
β€–iteratedFDeriv π•œ n (fun (y : D) => (B (f y)) (g y)) xβ€– ≀ β€–Bβ€– * βˆ‘ i ∈ Finset.range (n + 1), ↑(n.choose i) * β€–iteratedFDeriv π•œ i f xβ€– * β€–iteratedFDeriv π•œ (n - i) g xβ€–

Bounding the norm of the iterated derivative of B (f x) (g x) in terms of the iterated derivatives of f and g when B is bilinear: β€–D^n (x ↦ B (f x) (g x))β€– ≀ β€–Bβ€– βˆ‘_{k ≀ n} n.choose k β€–D^k fβ€– β€–D^{n-k} gβ€–

theorem ContinuousLinearMap.norm_iteratedFDerivWithin_le_of_bilinear_of_le_one {π•œ : Type u_1} [NontriviallyNormedField π•œ] {D : Type uD} [NormedAddCommGroup D] [NormedSpace π•œ D] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] (B : E β†’L[π•œ] F β†’L[π•œ] G) {f : D β†’ E} {g : D β†’ F} {N : WithTop β„•βˆž} {s : Set D} {x : D} (hf : ContDiffOn π•œ N f s) (hg : ContDiffOn π•œ N g s) (hs : UniqueDiffOn π•œ s) (hx : x ∈ s) {n : β„•} (hn : ↑n ≀ N) (hB : β€–Bβ€– ≀ 1) :
β€–iteratedFDerivWithin π•œ n (fun (y : D) => (B (f y)) (g y)) s xβ€– ≀ βˆ‘ i ∈ Finset.range (n + 1), ↑(n.choose i) * β€–iteratedFDerivWithin π•œ i f s xβ€– * β€–iteratedFDerivWithin π•œ (n - i) g s xβ€–

Bounding the norm of the iterated derivative of B (f x) (g x) within a set in terms of the iterated derivatives of f and g when B is bilinear of norm at most 1: β€–D^n (x ↦ B (f x) (g x))β€– ≀ βˆ‘_{k ≀ n} n.choose k β€–D^k fβ€– β€–D^{n-k} gβ€–

theorem ContinuousLinearMap.norm_iteratedFDeriv_le_of_bilinear_of_le_one {π•œ : Type u_1} [NontriviallyNormedField π•œ] {D : Type uD} [NormedAddCommGroup D] [NormedSpace π•œ D] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] (B : E β†’L[π•œ] F β†’L[π•œ] G) {f : D β†’ E} {g : D β†’ F} {N : WithTop β„•βˆž} (hf : ContDiff π•œ N f) (hg : ContDiff π•œ N g) (x : D) {n : β„•} (hn : ↑n ≀ N) (hB : β€–Bβ€– ≀ 1) :
β€–iteratedFDeriv π•œ n (fun (y : D) => (B (f y)) (g y)) xβ€– ≀ βˆ‘ i ∈ Finset.range (n + 1), ↑(n.choose i) * β€–iteratedFDeriv π•œ i f xβ€– * β€–iteratedFDeriv π•œ (n - i) g xβ€–

Bounding the norm of the iterated derivative of B (f x) (g x) in terms of the iterated derivatives of f and g when B is bilinear of norm at most 1: β€–D^n (x ↦ B (f x) (g x))β€– ≀ βˆ‘_{k ≀ n} n.choose k β€–D^k fβ€– β€–D^{n-k} gβ€–

theorem norm_iteratedFDerivWithin_smul_le {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {π•œ' : Type u_2} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] [NormedSpace π•œ' F] [IsScalarTower π•œ π•œ' F] {f : E β†’ π•œ'} {g : E β†’ F} {N : WithTop β„•βˆž} (hf : ContDiffOn π•œ N f s) (hg : ContDiffOn π•œ N g s) (hs : UniqueDiffOn π•œ s) {x : E} (hx : x ∈ s) {n : β„•} (hn : ↑n ≀ N) :
β€–iteratedFDerivWithin π•œ n (fun (y : E) => f y β€’ g y) s xβ€– ≀ βˆ‘ i ∈ Finset.range (n + 1), ↑(n.choose i) * β€–iteratedFDerivWithin π•œ i f s xβ€– * β€–iteratedFDerivWithin π•œ (n - i) g s xβ€–
theorem norm_iteratedFDeriv_smul_le {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {π•œ' : Type u_2} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] [NormedSpace π•œ' F] [IsScalarTower π•œ π•œ' F] {f : E β†’ π•œ'} {g : E β†’ F} {N : WithTop β„•βˆž} (hf : ContDiff π•œ N f) (hg : ContDiff π•œ N g) (x : E) {n : β„•} (hn : ↑n ≀ N) :
β€–iteratedFDeriv π•œ n (fun (y : E) => f y β€’ g y) xβ€– ≀ βˆ‘ i ∈ Finset.range (n + 1), ↑(n.choose i) * β€–iteratedFDeriv π•œ i f xβ€– * β€–iteratedFDeriv π•œ (n - i) g xβ€–
theorem norm_iteratedFDerivWithin_mul_le {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {A : Type u_3} [NormedRing A] [NormedAlgebra π•œ A] {f g : E β†’ A} {N : WithTop β„•βˆž} (hf : ContDiffOn π•œ N f s) (hg : ContDiffOn π•œ N g s) (hs : UniqueDiffOn π•œ s) {x : E} (hx : x ∈ s) {n : β„•} (hn : ↑n ≀ N) :
β€–iteratedFDerivWithin π•œ n (fun (y : E) => f y * g y) s xβ€– ≀ βˆ‘ i ∈ Finset.range (n + 1), ↑(n.choose i) * β€–iteratedFDerivWithin π•œ i f s xβ€– * β€–iteratedFDerivWithin π•œ (n - i) g s xβ€–
theorem norm_iteratedFDeriv_mul_le {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {A : Type u_3} [NormedRing A] [NormedAlgebra π•œ A] {f g : E β†’ A} {N : WithTop β„•βˆž} (hf : ContDiff π•œ N f) (hg : ContDiff π•œ N g) (x : E) {n : β„•} (hn : ↑n ≀ N) :
β€–iteratedFDeriv π•œ n (fun (y : E) => f y * g y) xβ€– ≀ βˆ‘ i ∈ Finset.range (n + 1), ↑(n.choose i) * β€–iteratedFDeriv π•œ i f xβ€– * β€–iteratedFDeriv π•œ (n - i) g xβ€–
theorem norm_iteratedFDerivWithin_prod_le {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {ΞΉ : Type u_2} {A' : Type u_4} [NormedCommRing A'] [NormedAlgebra π•œ A'] [DecidableEq ΞΉ] [NormOneClass A'] {u : Finset ΞΉ} {f : ΞΉ β†’ E β†’ A'} {N : WithTop β„•βˆž} (hf : βˆ€ i ∈ u, ContDiffOn π•œ N (f i) s) (hs : UniqueDiffOn π•œ s) {x : E} (hx : x ∈ s) {n : β„•} (hn : ↑n ≀ N) :
β€–iteratedFDerivWithin π•œ n (fun (x : E) => ∏ j ∈ u, f j x) s xβ€– ≀ βˆ‘ p ∈ u.sym n, ↑(↑p).countPerms * ∏ j ∈ u, β€–iteratedFDerivWithin π•œ (Multiset.count j ↑p) (f j) s xβ€–
theorem norm_iteratedFDeriv_prod_le {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {ΞΉ : Type u_2} {A' : Type u_4} [NormedCommRing A'] [NormedAlgebra π•œ A'] [DecidableEq ΞΉ] [NormOneClass A'] {u : Finset ΞΉ} {f : ΞΉ β†’ E β†’ A'} {N : WithTop β„•βˆž} (hf : βˆ€ i ∈ u, ContDiff π•œ N (f i)) {x : E} {n : β„•} (hn : ↑n ≀ N) :
β€–iteratedFDeriv π•œ n (fun (x : E) => ∏ j ∈ u, f j x) xβ€– ≀ βˆ‘ p ∈ u.sym n, ↑(↑p).countPerms * ∏ j ∈ u, β€–iteratedFDeriv π•œ (Multiset.count j ↑p) (f j) xβ€–
theorem norm_iteratedFDerivWithin_comp_le_aux {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {Fu Gu : Type u} [NormedAddCommGroup Fu] [NormedSpace π•œ Fu] [NormedAddCommGroup Gu] [NormedSpace π•œ Gu] {g : Fu β†’ Gu} {f : E β†’ Fu} {n : β„•} {s : Set E} {t : Set Fu} {x : E} (hg : ContDiffOn π•œ (↑n) g t) (hf : ContDiffOn π•œ (↑n) f s) (ht : UniqueDiffOn π•œ t) (hs : UniqueDiffOn π•œ s) (hst : Set.MapsTo f s t) (hx : x ∈ s) {C D : ℝ} (hC : βˆ€ i ≀ n, β€–iteratedFDerivWithin π•œ i g t (f x)β€– ≀ C) (hD : βˆ€ (i : β„•), 1 ≀ i β†’ i ≀ n β†’ β€–iteratedFDerivWithin π•œ i f s xβ€– ≀ D ^ i) :
β€–iteratedFDerivWithin π•œ n (g ∘ f) s xβ€– ≀ ↑n.factorial * C * D ^ n

If the derivatives within a set of g at f x are bounded by C, and the i-th derivative within a set of f at x is bounded by D^i for all 1 ≀ i ≀ n, then the n-th derivative of g ∘ f is bounded by n! * C * D^n. This lemma proves this estimate assuming additionally that two of the spaces live in the same universe, to make an induction possible. Use instead norm_iteratedFDerivWithin_comp_le that removes this assumption.

theorem norm_iteratedFDerivWithin_comp_le {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] {g : F β†’ G} {f : E β†’ F} {n : β„•} {s : Set E} {t : Set F} {x : E} {N : WithTop β„•βˆž} (hg : ContDiffOn π•œ N g t) (hf : ContDiffOn π•œ N f s) (hn : ↑n ≀ N) (ht : UniqueDiffOn π•œ t) (hs : UniqueDiffOn π•œ s) (hst : Set.MapsTo f s t) (hx : x ∈ s) {C D : ℝ} (hC : βˆ€ i ≀ n, β€–iteratedFDerivWithin π•œ i g t (f x)β€– ≀ C) (hD : βˆ€ (i : β„•), 1 ≀ i β†’ i ≀ n β†’ β€–iteratedFDerivWithin π•œ i f s xβ€– ≀ D ^ i) :
β€–iteratedFDerivWithin π•œ n (g ∘ f) s xβ€– ≀ ↑n.factorial * C * D ^ n

If the derivatives within a set of g at f x are bounded by C, and the i-th derivative within a set of f at x is bounded by D^i for all 1 ≀ i ≀ n, then the n-th derivative of g ∘ f is bounded by n! * C * D^n.

theorem norm_iteratedFDeriv_comp_le' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] {g : F β†’ G} {f : E β†’ F} {n : β„•} {N : WithTop β„•βˆž} {t : Set F} (ht : Set.range f βŠ† t) (ht' : UniqueDiffOn π•œ t) (hg : ContDiffOn π•œ N g t) (hf : ContDiff π•œ N f) (hn : ↑n ≀ N) (x : E) {C D : ℝ} (hC : βˆ€ i ≀ n, β€–iteratedFDerivWithin π•œ i g t (f x)β€– ≀ C) (hD : βˆ€ (i : β„•), 1 ≀ i β†’ i ≀ n β†’ β€–iteratedFDeriv π•œ i f xβ€– ≀ D ^ i) :
β€–iteratedFDeriv π•œ n (g ∘ f) xβ€– ≀ ↑n.factorial * C * D ^ n

If the derivatives of g at f x are bounded by C, and the i-th derivative of f at x is bounded by D^i for all 1 ≀ i ≀ n, then the n-th derivative of g ∘ f is bounded by n! * C * D^n.

Version with the iterated derivative of g only bounded on the range of f.

theorem norm_iteratedFDeriv_comp_le {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] {g : F β†’ G} {f : E β†’ F} {n : β„•} {N : WithTop β„•βˆž} (hg : ContDiff π•œ N g) (hf : ContDiff π•œ N f) (hn : ↑n ≀ N) (x : E) {C D : ℝ} (hC : βˆ€ i ≀ n, β€–iteratedFDeriv π•œ i g (f x)β€– ≀ C) (hD : βˆ€ (i : β„•), 1 ≀ i β†’ i ≀ n β†’ β€–iteratedFDeriv π•œ i f xβ€– ≀ D ^ i) :
β€–iteratedFDeriv π•œ n (g ∘ f) xβ€– ≀ ↑n.factorial * C * D ^ n

If the derivatives of g at f x are bounded by C, and the i-th derivative of f at x is bounded by D^i for all 1 ≀ i ≀ n, then the n-th derivative of g ∘ f is bounded by n! * C * D^n.

theorem norm_iteratedFDerivWithin_clm_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] {f : E β†’ F β†’L[π•œ] G} {g : E β†’ F} {s : Set E} {x : E} {N : WithTop β„•βˆž} {n : β„•} (hf : ContDiffOn π•œ N f s) (hg : ContDiffOn π•œ N g s) (hs : UniqueDiffOn π•œ s) (hx : x ∈ s) (hn : ↑n ≀ N) :
β€–iteratedFDerivWithin π•œ n (fun (y : E) => (f y) (g y)) s xβ€– ≀ βˆ‘ i ∈ Finset.range (n + 1), ↑(n.choose i) * β€–iteratedFDerivWithin π•œ i f s xβ€– * β€–iteratedFDerivWithin π•œ (n - i) g s xβ€–
theorem norm_iteratedFDeriv_clm_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] {f : E β†’ F β†’L[π•œ] G} {g : E β†’ F} {N : WithTop β„•βˆž} {n : β„•} (hf : ContDiff π•œ N f) (hg : ContDiff π•œ N g) (x : E) (hn : ↑n ≀ N) :
β€–iteratedFDeriv π•œ n (fun (y : E) => (f y) (g y)) xβ€– ≀ βˆ‘ i ∈ Finset.range (n + 1), ↑(n.choose i) * β€–iteratedFDeriv π•œ i f xβ€– * β€–iteratedFDeriv π•œ (n - i) g xβ€–
theorem ContinuousLinearMap.norm_iteratedFDerivWithin_comp_left {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] (L : F β†’L[π•œ] G) {f : E β†’ F} {s : Set E} {x : E} {N : WithTop β„•βˆž} {n : β„•} (hf : ContDiffWithinAt π•œ N f s x) (hs : UniqueDiffOn π•œ s) (hx : x ∈ s) (hn : ↑n ≀ N) :
theorem ContinuousLinearMap.norm_iteratedFDeriv_comp_left {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] (L : F β†’L[π•œ] G) {f : E β†’ F} {x : E} {N : WithTop β„•βˆž} {n : β„•} (hf : ContDiffAt π•œ N f x) (hn : ↑n ≀ N) :
theorem norm_iteratedFDerivWithin_clm_apply_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] {f : E β†’ F β†’L[π•œ] G} {c : F} {s : Set E} {x : E} {N : WithTop β„•βˆž} {n : β„•} (hf : ContDiffWithinAt π•œ N f s x) (hs : UniqueDiffOn π•œ s) (hx : x ∈ s) (hn : ↑n ≀ N) :
β€–iteratedFDerivWithin π•œ n (fun (y : E) => (f y) c) s xβ€– ≀ β€–cβ€– * β€–iteratedFDerivWithin π•œ n f s xβ€–
theorem norm_iteratedFDeriv_clm_apply_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type uG} [NormedAddCommGroup G] [NormedSpace π•œ G] {f : E β†’ F β†’L[π•œ] G} {c : F} {x : E} {N : WithTop β„•βˆž} {n : β„•} (hf : ContDiffAt π•œ N f x) (hn : ↑n ≀ N) :
β€–iteratedFDeriv π•œ n (fun (y : E) => (f y) c) xβ€– ≀ β€–cβ€– * β€–iteratedFDeriv π•œ n f xβ€–