Documentation

Mathlib.Analysis.Calculus.ContDiff.Operations

Higher differentiability of usual operations #

We prove that the usual operations (addition, multiplication, difference, and so on) preserve C^n functions.

Notation #

We use the notation E [Γ—n]β†’L[π•œ] F for the space of continuous multilinear maps on E^n with values in F. This is the space in which the n-th derivative of a function from E to F lives.

In this file, we denote WithTop β„•βˆž with β„•βˆžΟ‰, (⊀ : β„•βˆž) : β„•βˆžΟ‰ with ∞ and ⊀ : β„•βˆžΟ‰ with Ο‰.

Tags #

derivative, differentiability, higher derivative, C^n, multilinear, Taylor series, formal series

Smoothness of functions f : E β†’ Ξ  i, F' i #

theorem hasFTaylorSeriesUpToOn_pi {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {ΞΉ : Type u_3} [Fintype ΞΉ] {F' : ΞΉ β†’ Type u_5} [(i : ΞΉ) β†’ NormedAddCommGroup (F' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F' i)] {Ο† : (i : ΞΉ) β†’ E β†’ F' i} {p' : (i : ΞΉ) β†’ E β†’ FormalMultilinearSeries π•œ E (F' i)} {n : WithTop β„•βˆž} :
HasFTaylorSeriesUpToOn n (fun (x : E) (i : ΞΉ) => Ο† i x) (fun (x : E) (m : β„•) => ContinuousMultilinearMap.pi fun (i : ΞΉ) => p' i x m) s ↔ βˆ€ (i : ΞΉ), HasFTaylorSeriesUpToOn n (Ο† i) (p' i) s
@[simp]
theorem hasFTaylorSeriesUpToOn_pi' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {ΞΉ : Type u_3} [Fintype ΞΉ] {F' : ΞΉ β†’ Type u_5} [(i : ΞΉ) β†’ NormedAddCommGroup (F' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F' i)] {Ξ¦ : E β†’ (i : ΞΉ) β†’ F' i} {P' : E β†’ FormalMultilinearSeries π•œ E ((i : ΞΉ) β†’ F' i)} {n : WithTop β„•βˆž} :
HasFTaylorSeriesUpToOn n Ξ¦ P' s ↔ βˆ€ (i : ΞΉ), HasFTaylorSeriesUpToOn n (fun (x : E) => Ξ¦ x i) (fun (x : E) (m : β„•) => (ContinuousLinearMap.proj i).compContinuousMultilinearMap (P' x m)) s
theorem contDiffWithinAt_pi {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {x : E} {n : WithTop β„•βˆž} {ΞΉ : Type u_3} [Fintype ΞΉ] {F' : ΞΉ β†’ Type u_5} [(i : ΞΉ) β†’ NormedAddCommGroup (F' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F' i)] {Ξ¦ : E β†’ (i : ΞΉ) β†’ F' i} :
ContDiffWithinAt π•œ n Ξ¦ s x ↔ βˆ€ (i : ΞΉ), ContDiffWithinAt π•œ n (fun (x : E) => Ξ¦ x i) s x
theorem contDiffOn_pi {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {n : WithTop β„•βˆž} {ΞΉ : Type u_3} [Fintype ΞΉ] {F' : ΞΉ β†’ Type u_5} [(i : ΞΉ) β†’ NormedAddCommGroup (F' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F' i)] {Ξ¦ : E β†’ (i : ΞΉ) β†’ F' i} :
ContDiffOn π•œ n Ξ¦ s ↔ βˆ€ (i : ΞΉ), ContDiffOn π•œ n (fun (x : E) => Ξ¦ x i) s
theorem contDiffAt_pi {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {n : WithTop β„•βˆž} {ΞΉ : Type u_3} [Fintype ΞΉ] {F' : ΞΉ β†’ Type u_5} [(i : ΞΉ) β†’ NormedAddCommGroup (F' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F' i)] {Ξ¦ : E β†’ (i : ΞΉ) β†’ F' i} :
ContDiffAt π•œ n Ξ¦ x ↔ βˆ€ (i : ΞΉ), ContDiffAt π•œ n (fun (x : E) => Ξ¦ x i) x
theorem contDiff_pi {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {ΞΉ : Type u_3} [Fintype ΞΉ] {F' : ΞΉ β†’ Type u_5} [(i : ΞΉ) β†’ NormedAddCommGroup (F' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F' i)] {Ξ¦ : E β†’ (i : ΞΉ) β†’ F' i} :
ContDiff π•œ n Ξ¦ ↔ βˆ€ (i : ΞΉ), ContDiff π•œ n fun (x : E) => Ξ¦ x i
theorem contDiff_pi' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {ΞΉ : Type u_3} [Fintype ΞΉ] {F' : ΞΉ β†’ Type u_5} [(i : ΞΉ) β†’ NormedAddCommGroup (F' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F' i)] {Ξ¦ : E β†’ (i : ΞΉ) β†’ F' i} (hΞ¦ : βˆ€ (i : ΞΉ), ContDiff π•œ n fun (x : E) => Ξ¦ x i) :
ContDiff π•œ n Ξ¦
theorem contDiffOn_pi' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {n : WithTop β„•βˆž} {ΞΉ : Type u_3} [Fintype ΞΉ] {F' : ΞΉ β†’ Type u_5} [(i : ΞΉ) β†’ NormedAddCommGroup (F' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F' i)] {Ξ¦ : E β†’ (i : ΞΉ) β†’ F' i} (hΞ¦ : βˆ€ (i : ΞΉ), ContDiffOn π•œ n (fun (x : E) => Ξ¦ x i) s) :
ContDiffOn π•œ n Ξ¦ s
theorem contDiffAt_pi' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {n : WithTop β„•βˆž} {ΞΉ : Type u_3} [Fintype ΞΉ] {F' : ΞΉ β†’ Type u_5} [(i : ΞΉ) β†’ NormedAddCommGroup (F' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F' i)] {Ξ¦ : E β†’ (i : ΞΉ) β†’ F' i} (hΞ¦ : βˆ€ (i : ΞΉ), ContDiffAt π•œ n (fun (x : E) => Ξ¦ x i) x) :
ContDiffAt π•œ n Ξ¦ x
theorem contDiff_update {π•œ : Type u_1} [NontriviallyNormedField π•œ] {ΞΉ : Type u_3} [Fintype ΞΉ] {F' : ΞΉ β†’ Type u_5} [(i : ΞΉ) β†’ NormedAddCommGroup (F' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F' i)] [DecidableEq ΞΉ] (k : WithTop β„•βˆž) (x : (i : ΞΉ) β†’ F' i) (i : ΞΉ) :
ContDiff π•œ k (Function.update x i)
theorem contDiff_single {π•œ : Type u_1} [NontriviallyNormedField π•œ] {ΞΉ : Type u_3} [Fintype ΞΉ] (F' : ΞΉ β†’ Type u_5) [(i : ΞΉ) β†’ NormedAddCommGroup (F' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F' i)] [DecidableEq ΞΉ] (k : WithTop β„•βˆž) (i : ΞΉ) :
ContDiff π•œ k (Pi.single i)
theorem contDiff_apply (π•œ : Type u_1) [NontriviallyNormedField π•œ] (E : Type uE) [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {ΞΉ : Type u_3} [Fintype ΞΉ] (i : ΞΉ) :
ContDiff π•œ n fun (f : ΞΉ β†’ E) => f i
theorem contDiffAt_apply (π•œ : Type u_1) [NontriviallyNormedField π•œ] (E : Type uE) [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {ΞΉ : Type u_3} [Fintype ΞΉ] (i : ΞΉ) (f : ΞΉ β†’ E) :
ContDiffAt π•œ n (fun (f : ΞΉ β†’ E) => f i) f
theorem contDiffOn_apply (π•œ : Type u_1) [NontriviallyNormedField π•œ] (E : Type uE) [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {ΞΉ : Type u_3} [Fintype ΞΉ] (i : ΞΉ) (s : Set (ΞΉ β†’ E)) :
ContDiffOn π•œ n (fun (f : ΞΉ β†’ E) => f i) s
theorem contDiff_apply_apply (π•œ : Type u_1) [NontriviallyNormedField π•œ] (E : Type uE) [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {ΞΉ : Type u_3} {ΞΉ' : Type u_4} [Fintype ΞΉ] [Fintype ΞΉ'] (i : ΞΉ) (j : ΞΉ') :
ContDiff π•œ n fun (f : ΞΉ β†’ ΞΉ' β†’ E) => f i j

Sum of two functions #

theorem HasFTaylorSeriesUpToOn.add {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {f : E β†’ F} {p : E β†’ FormalMultilinearSeries π•œ E F} {n : WithTop β„•βˆž} {q : E β†’ FormalMultilinearSeries π•œ E F} {g : E β†’ F} (hf : HasFTaylorSeriesUpToOn n f p s) (hg : HasFTaylorSeriesUpToOn n g q s) :
HasFTaylorSeriesUpToOn n (f + g) (p + q) s
theorem contDiff_add {π•œ : Type u_1} [NontriviallyNormedField π•œ] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} :
ContDiff π•œ n fun (p : F Γ— F) => p.1 + p.2
theorem ContDiffWithinAt.add {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {n : WithTop β„•βˆž} {s : Set E} {f g : E β†’ F} (hf : ContDiffWithinAt π•œ n f s x) (hg : ContDiffWithinAt π•œ n g s x) :
ContDiffWithinAt π•œ n (fun (x : E) => f x + g x) s x

The sum of two C^n functions within a set at a point is C^n within this set at this point.

theorem ContDiffAt.add {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {n : WithTop β„•βˆž} {f g : E β†’ F} (hf : ContDiffAt π•œ n f x) (hg : ContDiffAt π•œ n g x) :
ContDiffAt π•œ n (fun (x : E) => f x + g x) x

The sum of two C^n functions at a point is C^n at this point.

theorem ContDiff.add {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {f g : E β†’ F} (hf : ContDiff π•œ n f) (hg : ContDiff π•œ n g) :
ContDiff π•œ n fun (x : E) => f x + g x

The sum of two C^n functions is C^n.

theorem ContDiffOn.add {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {s : Set E} {f g : E β†’ F} (hf : ContDiffOn π•œ n f s) (hg : ContDiffOn π•œ n g s) :
ContDiffOn π•œ n (fun (x : E) => f x + g x) s

The sum of two C^n functions on a domain is C^n.

theorem iteratedFDerivWithin_add_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {x : E} {i : β„•} {f g : E β†’ F} (hf : ContDiffWithinAt π•œ (↑i) f s x) (hg : ContDiffWithinAt π•œ (↑i) g s x) (hu : UniqueDiffOn π•œ s) (hx : x ∈ s) :
iteratedFDerivWithin π•œ i (f + g) s x = iteratedFDerivWithin π•œ i f s x + iteratedFDerivWithin π•œ i g s x

The iterated derivative of the sum of two functions is the sum of the iterated derivatives.

theorem fun_iteratedFDerivWithin_add_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {x : E} {i : β„•} {f g : E β†’ F} (hf : ContDiffWithinAt π•œ (↑i) f s x) (hg : ContDiffWithinAt π•œ (↑i) g s x) (hu : UniqueDiffOn π•œ s) (hx : x ∈ s) :
iteratedFDerivWithin π•œ i (fun (i : E) => f i + g i) s x = iteratedFDerivWithin π•œ i f s x + iteratedFDerivWithin π•œ i g s x

Eta-expanded form of iteratedFDerivWithin_add_apply


The iterated derivative of the sum of two functions is the sum of the iterated derivatives.

theorem iteratedFDeriv_add_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {i : β„•} {f g : E β†’ F} (hf : ContDiffAt π•œ (↑i) f x) (hg : ContDiffAt π•œ (↑i) g x) :
iteratedFDeriv π•œ i (f + g) x = iteratedFDeriv π•œ i f x + iteratedFDeriv π•œ i g x
theorem fun_iteratedFDeriv_add_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {i : β„•} {f g : E β†’ F} (hf : ContDiffAt π•œ (↑i) f x) (hg : ContDiffAt π•œ (↑i) g x) :
iteratedFDeriv π•œ i (fun (i : E) => f i + g i) x = iteratedFDeriv π•œ i f x + iteratedFDeriv π•œ i g x

Eta-expanded form of iteratedFDeriv_add_apply

theorem iteratedFDeriv_add {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {i : β„•} {f g : E β†’ F} (hf : ContDiff π•œ (↑i) f) (hg : ContDiff π•œ (↑i) g) :
iteratedFDeriv π•œ i (f + g) = iteratedFDeriv π•œ i f + iteratedFDeriv π•œ i g
theorem fun_iteratedFDeriv_add {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {i : β„•} {f g : E β†’ F} (hf : ContDiff π•œ (↑i) f) (hg : ContDiff π•œ (↑i) g) :
(iteratedFDeriv π•œ i fun (i : E) => f i + g i) = fun (i_1 : E) => iteratedFDeriv π•œ i f i_1 + iteratedFDeriv π•œ i g i_1

Eta-expanded form of iteratedFDeriv_add

Negative #

theorem contDiff_neg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} :
ContDiff π•œ n fun (p : F) => -p
theorem ContDiffWithinAt.neg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {n : WithTop β„•βˆž} {s : Set E} {f : E β†’ F} (hf : ContDiffWithinAt π•œ n f s x) :
ContDiffWithinAt π•œ n (fun (x : E) => -f x) s x

The negative of a C^n function within a domain at a point is C^n within this domain at this point.

theorem ContDiffAt.neg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {n : WithTop β„•βˆž} {f : E β†’ F} (hf : ContDiffAt π•œ n f x) :
ContDiffAt π•œ n (fun (x : E) => -f x) x

The negative of a C^n function at a point is C^n at this point.

theorem ContDiff.neg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {f : E β†’ F} (hf : ContDiff π•œ n f) :
ContDiff π•œ n fun (x : E) => -f x

The negative of a C^n function is C^n.

theorem ContDiffOn.neg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {s : Set E} {f : E β†’ F} (hf : ContDiffOn π•œ n f s) :
ContDiffOn π•œ n (fun (x : E) => -f x) s

The negative of a C^n function on a domain is C^n.

theorem iteratedFDerivWithin_neg_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {x : E} {i : β„•} {f : E β†’ F} (hu : UniqueDiffOn π•œ s) (hx : x ∈ s) :
iteratedFDerivWithin π•œ i (-f) s x = -iteratedFDerivWithin π•œ i f s x
theorem iteratedFDeriv_neg_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {i : β„•} {f : E β†’ F} :
iteratedFDeriv π•œ i (-f) x = -iteratedFDeriv π•œ i f x
theorem iteratedFDeriv_neg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {i : β„•} {f : E β†’ F} :
iteratedFDeriv π•œ i (-f) = -iteratedFDeriv π•œ i f

Subtraction #

theorem ContDiffWithinAt.sub {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {n : WithTop β„•βˆž} {s : Set E} {f g : E β†’ F} (hf : ContDiffWithinAt π•œ n f s x) (hg : ContDiffWithinAt π•œ n g s x) :
ContDiffWithinAt π•œ n (fun (x : E) => f x - g x) s x

The difference of two C^n functions within a set at a point is C^n within this set at this point.

theorem ContDiffAt.sub {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {n : WithTop β„•βˆž} {f g : E β†’ F} (hf : ContDiffAt π•œ n f x) (hg : ContDiffAt π•œ n g x) :
ContDiffAt π•œ n (fun (x : E) => f x - g x) x

The difference of two C^n functions at a point is C^n at this point.

theorem ContDiffOn.sub {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {s : Set E} {f g : E β†’ F} (hf : ContDiffOn π•œ n f s) (hg : ContDiffOn π•œ n g s) :
ContDiffOn π•œ n (fun (x : E) => f x - g x) s

The difference of two C^n functions on a domain is C^n.

theorem ContDiff.sub {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {f g : E β†’ F} (hf : ContDiff π•œ n f) (hg : ContDiff π•œ n g) :
ContDiff π•œ n fun (x : E) => f x - g x

The difference of two C^n functions is C^n.

theorem iteratedFDerivWithin_sub_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {x : E} {i : β„•} {f g : E β†’ F} (hf : ContDiffWithinAt π•œ (↑i) f s x) (hg : ContDiffWithinAt π•œ (↑i) g s x) (hu : UniqueDiffOn π•œ s) (hx : x ∈ s) :
iteratedFDerivWithin π•œ i (f - g) s x = iteratedFDerivWithin π•œ i f s x - iteratedFDerivWithin π•œ i g s x

The iterated derivative of the difference of two functions is the difference of the iterated derivatives.

theorem fun_iteratedFDerivWithin_sub_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {x : E} {i : β„•} {f g : E β†’ F} (hf : ContDiffWithinAt π•œ (↑i) f s x) (hg : ContDiffWithinAt π•œ (↑i) g s x) (hu : UniqueDiffOn π•œ s) (hx : x ∈ s) :
iteratedFDerivWithin π•œ i (fun (i : E) => f i - g i) s x = iteratedFDerivWithin π•œ i f s x - iteratedFDerivWithin π•œ i g s x

Eta-expanded form of iteratedFDerivWithin_sub_apply


The iterated derivative of the difference of two functions is the difference of the iterated derivatives.

theorem iteratedFDeriv_sub_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {i : β„•} {f g : E β†’ F} (hf : ContDiffAt π•œ (↑i) f x) (hg : ContDiffAt π•œ (↑i) g x) :
iteratedFDeriv π•œ i (f - g) x = iteratedFDeriv π•œ i f x - iteratedFDeriv π•œ i g x

The iterated derivative of the difference of two functions is the difference of the iterated derivatives.

theorem fun_iteratedFDeriv_sub_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {i : β„•} {f g : E β†’ F} (hf : ContDiffAt π•œ (↑i) f x) (hg : ContDiffAt π•œ (↑i) g x) :
iteratedFDeriv π•œ i (fun (i : E) => f i - g i) x = iteratedFDeriv π•œ i f x - iteratedFDeriv π•œ i g x

Eta-expanded form of iteratedFDeriv_sub_apply


The iterated derivative of the difference of two functions is the difference of the iterated derivatives.

theorem iteratedFDeriv_sub {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {i : β„•} {f g : E β†’ F} (hf : ContDiff π•œ (↑i) f) (hg : ContDiff π•œ (↑i) g) :
iteratedFDeriv π•œ i (f - g) = iteratedFDeriv π•œ i f - iteratedFDeriv π•œ i g

The iterated derivative of the difference of two functions is the difference of the iterated derivatives.

theorem fun_iteratedFDeriv_sub {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {i : β„•} {f g : E β†’ F} (hf : ContDiff π•œ (↑i) f) (hg : ContDiff π•œ (↑i) g) :
(iteratedFDeriv π•œ i fun (i : E) => f i - g i) = fun (i_1 : E) => iteratedFDeriv π•œ i f i_1 - iteratedFDeriv π•œ i g i_1

Eta-expanded form of iteratedFDeriv_sub


The iterated derivative of the difference of two functions is the difference of the iterated derivatives.

Sum of finitely many functions #

theorem ContDiffWithinAt.sum {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {ΞΉ : Type u_3} {f : ΞΉ β†’ E β†’ F} {s : Finset ΞΉ} {t : Set E} {x : E} (h : βˆ€ i ∈ s, ContDiffWithinAt π•œ n (fun (x : E) => f i x) t x) :
ContDiffWithinAt π•œ n (fun (x : E) => βˆ‘ i ∈ s, f i x) t x
theorem ContDiffAt.sum {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {ΞΉ : Type u_3} {f : ΞΉ β†’ E β†’ F} {s : Finset ΞΉ} {x : E} (h : βˆ€ i ∈ s, ContDiffAt π•œ n (fun (x : E) => f i x) x) :
ContDiffAt π•œ n (fun (x : E) => βˆ‘ i ∈ s, f i x) x
theorem ContDiffOn.sum {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {ΞΉ : Type u_3} {f : ΞΉ β†’ E β†’ F} {s : Finset ΞΉ} {t : Set E} (h : βˆ€ i ∈ s, ContDiffOn π•œ n (fun (x : E) => f i x) t) :
ContDiffOn π•œ n (fun (x : E) => βˆ‘ i ∈ s, f i x) t
theorem ContDiff.sum {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {ΞΉ : Type u_3} {f : ΞΉ β†’ E β†’ F} {s : Finset ΞΉ} (h : βˆ€ i ∈ s, ContDiff π•œ n fun (x : E) => f i x) :
ContDiff π•œ n fun (x : E) => βˆ‘ i ∈ s, f i x
theorem iteratedFDerivWithin_sum_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {ΞΉ : Type u_3} {f : ΞΉ β†’ E β†’ F} {u : Finset ΞΉ} {i : β„•} {x : E} (hs : UniqueDiffOn π•œ s) (hx : x ∈ s) (h : βˆ€ j ∈ u, ContDiffWithinAt π•œ (↑i) (f j) s x) :
iteratedFDerivWithin π•œ i (βˆ‘ j ∈ u, f j) s x = βˆ‘ j ∈ u, iteratedFDerivWithin π•œ i (f j) s x
theorem iteratedFDerivWithin_fun_sum_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {ΞΉ : Type u_3} {f : ΞΉ β†’ E β†’ F} {u : Finset ΞΉ} {i : β„•} {x : E} (hs : UniqueDiffOn π•œ s) (hx : x ∈ s) (h : βˆ€ j ∈ u, ContDiffWithinAt π•œ (↑i) (f j) s x) :
iteratedFDerivWithin π•œ i (fun (z : E) => βˆ‘ j ∈ u, f j z) s x = βˆ‘ j ∈ u, iteratedFDerivWithin π•œ i (f j) s x
theorem iteratedFDeriv_sum_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {ΞΉ : Type u_3} {f : ΞΉ β†’ E β†’ F} {u : Finset ΞΉ} {n : β„•} {x : E} (h : βˆ€ j ∈ u, ContDiffAt π•œ (↑n) (f j) x) :
iteratedFDeriv π•œ n (βˆ‘ j ∈ u, f j) x = βˆ‘ j ∈ u, iteratedFDeriv π•œ n (f j) x
theorem iteratedFDeriv_fun_sum_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {ΞΉ : Type u_3} {f : ΞΉ β†’ E β†’ F} {u : Finset ΞΉ} {n : β„•} {x : E} (h : βˆ€ j ∈ u, ContDiffAt π•œ (↑n) (f j) x) :
iteratedFDeriv π•œ n (fun (z : E) => βˆ‘ j ∈ u, f j z) x = βˆ‘ j ∈ u, iteratedFDeriv π•œ n (f j) x
theorem iteratedFDeriv_sum {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {ΞΉ : Type u_3} {f : ΞΉ β†’ E β†’ F} {u : Finset ΞΉ} {i : β„•} (h : βˆ€ j ∈ u, ContDiff π•œ (↑i) (f j)) :
(iteratedFDeriv π•œ i fun (x : E) => βˆ‘ j ∈ u, f j x) = βˆ‘ j ∈ u, iteratedFDeriv π•œ i (f j)

Product of two functions #

theorem contDiff_mul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {n : WithTop β„•βˆž} {𝔸 : Type u_3} [NormedRing 𝔸] [NormedAlgebra π•œ 𝔸] :
ContDiff π•œ n fun (p : 𝔸 Γ— 𝔸) => p.1 * p.2
theorem ContDiffWithinAt.mul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {n : WithTop β„•βˆž} {𝔸 : Type u_3} [NormedRing 𝔸] [NormedAlgebra π•œ 𝔸] {s : Set E} {f g : E β†’ 𝔸} (hf : ContDiffWithinAt π•œ n f s x) (hg : ContDiffWithinAt π•œ n g s x) :
ContDiffWithinAt π•œ n (fun (x : E) => f x * g x) s x

The product of two C^n functions within a set at a point is C^n within this set at this point.

theorem ContDiffAt.mul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {n : WithTop β„•βˆž} {𝔸 : Type u_3} [NormedRing 𝔸] [NormedAlgebra π•œ 𝔸] {f g : E β†’ 𝔸} (hf : ContDiffAt π•œ n f x) (hg : ContDiffAt π•œ n g x) :
ContDiffAt π•œ n (fun (x : E) => f x * g x) x

The product of two C^n functions at a point is C^n at this point.

theorem ContDiffOn.mul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {n : WithTop β„•βˆž} {𝔸 : Type u_3} [NormedRing 𝔸] [NormedAlgebra π•œ 𝔸] {f g : E β†’ 𝔸} (hf : ContDiffOn π•œ n f s) (hg : ContDiffOn π•œ n g s) :
ContDiffOn π•œ n (fun (x : E) => f x * g x) s

The product of two C^n functions on a domain is C^n.

theorem ContDiff.mul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {𝔸 : Type u_3} [NormedRing 𝔸] [NormedAlgebra π•œ 𝔸] {f g : E β†’ 𝔸} (hf : ContDiff π•œ n f) (hg : ContDiff π•œ n g) :
ContDiff π•œ n fun (x : E) => f x * g x

The product of two C^n functions is C^n.

theorem contDiffWithinAt_prod' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {x : E} {n : WithTop β„•βˆž} {𝔸' : Type u_4} {ΞΉ : Type u_5} [NormedCommRing 𝔸'] [NormedAlgebra π•œ 𝔸'] {t : Finset ΞΉ} {f : ΞΉ β†’ E β†’ 𝔸'} (h : βˆ€ i ∈ t, ContDiffWithinAt π•œ n (f i) s x) :
ContDiffWithinAt π•œ n (∏ i ∈ t, f i) s x
theorem contDiffWithinAt_prod {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {x : E} {n : WithTop β„•βˆž} {𝔸' : Type u_4} {ΞΉ : Type u_5} [NormedCommRing 𝔸'] [NormedAlgebra π•œ 𝔸'] {t : Finset ΞΉ} {f : ΞΉ β†’ E β†’ 𝔸'} (h : βˆ€ i ∈ t, ContDiffWithinAt π•œ n (f i) s x) :
ContDiffWithinAt π•œ n (fun (y : E) => ∏ i ∈ t, f i y) s x
theorem contDiffAt_prod' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {n : WithTop β„•βˆž} {𝔸' : Type u_4} {ΞΉ : Type u_5} [NormedCommRing 𝔸'] [NormedAlgebra π•œ 𝔸'] {t : Finset ΞΉ} {f : ΞΉ β†’ E β†’ 𝔸'} (h : βˆ€ i ∈ t, ContDiffAt π•œ n (f i) x) :
ContDiffAt π•œ n (∏ i ∈ t, f i) x
theorem contDiffAt_prod {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {n : WithTop β„•βˆž} {𝔸' : Type u_4} {ΞΉ : Type u_5} [NormedCommRing 𝔸'] [NormedAlgebra π•œ 𝔸'] {t : Finset ΞΉ} {f : ΞΉ β†’ E β†’ 𝔸'} (h : βˆ€ i ∈ t, ContDiffAt π•œ n (f i) x) :
ContDiffAt π•œ n (fun (y : E) => ∏ i ∈ t, f i y) x
theorem contDiffOn_prod' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {n : WithTop β„•βˆž} {𝔸' : Type u_4} {ΞΉ : Type u_5} [NormedCommRing 𝔸'] [NormedAlgebra π•œ 𝔸'] {t : Finset ΞΉ} {f : ΞΉ β†’ E β†’ 𝔸'} (h : βˆ€ i ∈ t, ContDiffOn π•œ n (f i) s) :
ContDiffOn π•œ n (∏ i ∈ t, f i) s
theorem contDiffOn_prod {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {n : WithTop β„•βˆž} {𝔸' : Type u_4} {ΞΉ : Type u_5} [NormedCommRing 𝔸'] [NormedAlgebra π•œ 𝔸'] {t : Finset ΞΉ} {f : ΞΉ β†’ E β†’ 𝔸'} (h : βˆ€ i ∈ t, ContDiffOn π•œ n (f i) s) :
ContDiffOn π•œ n (fun (y : E) => ∏ i ∈ t, f i y) s
theorem contDiff_prod' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {𝔸' : Type u_4} {ΞΉ : Type u_5} [NormedCommRing 𝔸'] [NormedAlgebra π•œ 𝔸'] {t : Finset ΞΉ} {f : ΞΉ β†’ E β†’ 𝔸'} (h : βˆ€ i ∈ t, ContDiff π•œ n (f i)) :
ContDiff π•œ n (∏ i ∈ t, f i)
theorem contDiff_prod {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {𝔸' : Type u_4} {ΞΉ : Type u_5} [NormedCommRing 𝔸'] [NormedAlgebra π•œ 𝔸'] {t : Finset ΞΉ} {f : ΞΉ β†’ E β†’ 𝔸'} (h : βˆ€ i ∈ t, ContDiff π•œ n (f i)) :
ContDiff π•œ n fun (y : E) => ∏ i ∈ t, f i y
theorem ContDiff.pow {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {𝔸 : Type u_3} [NormedRing 𝔸] [NormedAlgebra π•œ 𝔸] {f : E β†’ 𝔸} (hf : ContDiff π•œ n f) (m : β„•) :
ContDiff π•œ n fun (x : E) => f x ^ m
theorem ContDiffWithinAt.pow {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {x : E} {n : WithTop β„•βˆž} {𝔸 : Type u_3} [NormedRing 𝔸] [NormedAlgebra π•œ 𝔸] {f : E β†’ 𝔸} (hf : ContDiffWithinAt π•œ n f s x) (m : β„•) :
ContDiffWithinAt π•œ n (fun (y : E) => f y ^ m) s x
theorem ContDiffAt.pow {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {n : WithTop β„•βˆž} {𝔸 : Type u_3} [NormedRing 𝔸] [NormedAlgebra π•œ 𝔸] {f : E β†’ 𝔸} (hf : ContDiffAt π•œ n f x) (m : β„•) :
ContDiffAt π•œ n (fun (y : E) => f y ^ m) x
theorem ContDiffOn.pow {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {n : WithTop β„•βˆž} {𝔸 : Type u_3} [NormedRing 𝔸] [NormedAlgebra π•œ 𝔸] {f : E β†’ 𝔸} (hf : ContDiffOn π•œ n f s) (m : β„•) :
ContDiffOn π•œ n (fun (y : E) => f y ^ m) s
theorem ContDiffWithinAt.div_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {x : E} {π•œ' : Type u_6} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} {n : WithTop β„•βˆž} (hf : ContDiffWithinAt π•œ n f s x) (c : π•œ') :
ContDiffWithinAt π•œ n (fun (x : E) => f x / c) s x
theorem ContDiffAt.div_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {π•œ' : Type u_6} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} {n : WithTop β„•βˆž} (hf : ContDiffAt π•œ n f x) (c : π•œ') :
ContDiffAt π•œ n (fun (x : E) => f x / c) x
theorem ContDiffOn.div_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {π•œ' : Type u_6} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} {n : WithTop β„•βˆž} (hf : ContDiffOn π•œ n f s) (c : π•œ') :
ContDiffOn π•œ n (fun (x : E) => f x / c) s
theorem ContDiff.div_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {π•œ' : Type u_6} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} {n : WithTop β„•βˆž} (hf : ContDiff π•œ n f) (c : π•œ') :
ContDiff π•œ n fun (x : E) => f x / c

Scalar multiplication #

theorem contDiff_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [Module π•œ' F] [IsBoundedSMul π•œ' F] [IsScalarTower π•œ π•œ' F] :
ContDiff π•œ n fun (p : π•œ' Γ— F) => p.1 β€’ p.2
theorem ContDiffWithinAt.smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [Module π•œ' F] [IsBoundedSMul π•œ' F] [IsScalarTower π•œ π•œ' F] {s : Set E} {f : E β†’ π•œ'} {g : E β†’ F} (hf : ContDiffWithinAt π•œ n f s x) (hg : ContDiffWithinAt π•œ n g s x) :
ContDiffWithinAt π•œ n (f β€’ g) s x

The scalar multiplication of two C^n functions within a set at a point is C^n within this set at this point.

theorem ContDiffWithinAt.fun_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [Module π•œ' F] [IsBoundedSMul π•œ' F] [IsScalarTower π•œ π•œ' F] {s : Set E} {f : E β†’ π•œ'} {g : E β†’ F} (hf : ContDiffWithinAt π•œ n f s x) (hg : ContDiffWithinAt π•œ n g s x) :
ContDiffWithinAt π•œ n (fun (i : E) => f i β€’ g i) s x

Eta-expanded form of ContDiffWithinAt.smul


The scalar multiplication of two C^n functions within a set at a point is C^n within this set at this point.

theorem ContDiffAt.smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [Module π•œ' F] [IsBoundedSMul π•œ' F] [IsScalarTower π•œ π•œ' F] {f : E β†’ π•œ'} {g : E β†’ F} (hf : ContDiffAt π•œ n f x) (hg : ContDiffAt π•œ n g x) :
ContDiffAt π•œ n (f β€’ g) x

The scalar multiplication of two C^n functions at a point is C^n at this point.

theorem ContDiffAt.fun_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [Module π•œ' F] [IsBoundedSMul π•œ' F] [IsScalarTower π•œ π•œ' F] {f : E β†’ π•œ'} {g : E β†’ F} (hf : ContDiffAt π•œ n f x) (hg : ContDiffAt π•œ n g x) :
ContDiffAt π•œ n (fun (i : E) => f i β€’ g i) x

Eta-expanded form of ContDiffAt.smul


The scalar multiplication of two C^n functions at a point is C^n at this point.

theorem ContDiff.smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [Module π•œ' F] [IsBoundedSMul π•œ' F] [IsScalarTower π•œ π•œ' F] {f : E β†’ π•œ'} {g : E β†’ F} (hf : ContDiff π•œ n f) (hg : ContDiff π•œ n g) :
ContDiff π•œ n (f β€’ g)

The scalar multiplication of two C^n functions is C^n.

theorem ContDiff.fun_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [Module π•œ' F] [IsBoundedSMul π•œ' F] [IsScalarTower π•œ π•œ' F] {f : E β†’ π•œ'} {g : E β†’ F} (hf : ContDiff π•œ n f) (hg : ContDiff π•œ n g) :
ContDiff π•œ n fun (i : E) => f i β€’ g i

Eta-expanded form of ContDiff.smul


The scalar multiplication of two C^n functions is C^n.

theorem ContDiffOn.smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [Module π•œ' F] [IsBoundedSMul π•œ' F] [IsScalarTower π•œ π•œ' F] {s : Set E} {f : E β†’ π•œ'} {g : E β†’ F} (hf : ContDiffOn π•œ n f s) (hg : ContDiffOn π•œ n g s) :
ContDiffOn π•œ n (f β€’ g) s

The scalar multiplication of two C^n functions on a domain is C^n.

theorem ContDiffOn.fun_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [Module π•œ' F] [IsBoundedSMul π•œ' F] [IsScalarTower π•œ π•œ' F] {s : Set E} {f : E β†’ π•œ'} {g : E β†’ F} (hf : ContDiffOn π•œ n f s) (hg : ContDiffOn π•œ n g s) :
ContDiffOn π•œ n (fun (i : E) => f i β€’ g i) s

Eta-expanded form of ContDiffOn.smul


The scalar multiplication of two C^n functions on a domain is C^n.

Constant scalar multiplication #

TODO: generalize results in this section -- if c is a unit (or R is a group), then one can drop ContDiff* assumptions in some lemmas about iteratedFDeriv and iteratedFDerivWithin.

theorem contDiff_const_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {R : Type u_3} [DistribSMul R F] [SMulCommClass π•œ R F] [ContinuousConstSMul R F] (c : R) :
ContDiff π•œ n fun (p : F) => c β€’ p

Scalar multiplication is smooth (as a function of the vector variable).

theorem contDiff_smul_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {A : Type u_4} [NormedRing A] [NormedAlgebra π•œ A] [Module A F] [IsScalarTower π•œ A F] [IsBoundedSMul A F] (v : F) :
ContDiff π•œ n fun (a : A) => a β€’ v

Scalar multiplication is smooth (as a function of the scalar variable).

theorem ContDiffWithinAt.const_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {R : Type u_3} [DistribSMul R F] [SMulCommClass π•œ R F] [ContinuousConstSMul R F] {s : Set E} {f : E β†’ F} {x : E} (c : R) (hf : ContDiffWithinAt π•œ n f s x) :
ContDiffWithinAt π•œ n (fun (y : E) => c β€’ f y) s x

The scalar multiplication of a constant and a C^n function within a set at a point is C^n within this set at this point.

theorem ContDiffWithinAt.smul_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {A : Type u_4} [NormedRing A] [NormedAlgebra π•œ A] [Module A F] [IsScalarTower π•œ A F] [IsBoundedSMul A F] {s : Set E} {f : E β†’ A} {x : E} (hf : ContDiffWithinAt π•œ n f s x) (v : F) :
ContDiffWithinAt π•œ n (fun (y : E) => f y β€’ v) s x

The scalar multiplication of C^n function within a set at a point and a constant and is C^n within this set at this point.

theorem ContDiffAt.const_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {R : Type u_3} [DistribSMul R F] [SMulCommClass π•œ R F] [ContinuousConstSMul R F] {f : E β†’ F} {x : E} (c : R) (hf : ContDiffAt π•œ n f x) :
ContDiffAt π•œ n (fun (y : E) => c β€’ f y) x

The scalar multiplication of a constant and a C^n function at a point is C^n at this point.

theorem ContDiffAt.smul_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {A : Type u_4} [NormedRing A] [NormedAlgebra π•œ A] [Module A F] [IsScalarTower π•œ A F] [IsBoundedSMul A F] {f : E β†’ A} {x : E} (hf : ContDiffAt π•œ n f x) (v : F) :
ContDiffAt π•œ n (fun (y : E) => f y β€’ v) x

The scalar multiplication of a C^n function at a point and a constant is C^n at this point.

theorem ContDiff.const_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {R : Type u_3} [DistribSMul R F] [SMulCommClass π•œ R F] [ContinuousConstSMul R F] {f : E β†’ F} (c : R) (hf : ContDiff π•œ n f) :
ContDiff π•œ n fun (y : E) => c β€’ f y

The scalar multiplication of a constant and a C^n function is C^n.

theorem ContDiff.smul_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {A : Type u_4} [NormedRing A] [NormedAlgebra π•œ A] [Module A F] [IsScalarTower π•œ A F] [IsBoundedSMul A F] {f : E β†’ A} (hf : ContDiff π•œ n f) (v : F) :
ContDiff π•œ n fun (y : E) => f y β€’ v

The scalar multiplication of a C^n function and a constant is C^n.

theorem ContDiffOn.const_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {R : Type u_3} [DistribSMul R F] [SMulCommClass π•œ R F] [ContinuousConstSMul R F] {s : Set E} {f : E β†’ F} (c : R) (hf : ContDiffOn π•œ n f s) :
ContDiffOn π•œ n (fun (y : E) => c β€’ f y) s

The scalar multiplication of a constant and a C^n function on a domain is C^n.

theorem ContDiffOn.smul_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {A : Type u_4} [NormedRing A] [NormedAlgebra π•œ A] [Module A F] [IsScalarTower π•œ A F] [IsBoundedSMul A F] {s : Set E} {f : E β†’ A} (hf : ContDiffOn π•œ n f s) (v : F) :
ContDiffOn π•œ n (fun (y : E) => f y β€’ v) s

The scalar multiplication of a C^n function on a domain and a constant is C^n.

theorem iteratedFDerivWithin_const_smul_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {f : E β†’ F} {x : E} {R : Type u_3} [DistribSMul R F] [SMulCommClass π•œ R F] [ContinuousConstSMul R F] {i : β„•} {a : R} (hf : ContDiffWithinAt π•œ (↑i) f s x) (hu : UniqueDiffOn π•œ s) (hx : x ∈ s) :
iteratedFDerivWithin π•œ i (a β€’ f) s x = a β€’ iteratedFDerivWithin π•œ i f s x
theorem iteratedFDerivWithin_smul_const_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {x : E} {A : Type u_4} [NormedRing A] [NormedAlgebra π•œ A] [Module A F] [IsScalarTower π•œ A F] [IsBoundedSMul A F] {i : β„•} {v : F} {f : E β†’ A} (hf : ContDiffWithinAt π•œ (↑i) f s x) (hu : UniqueDiffOn π•œ s) (hx : x ∈ s) :
iteratedFDerivWithin π•œ i (fun (y : E) => f y β€’ v) s x = ((ContinuousLinearMap.id π•œ A).smulRight v).compContinuousMultilinearMap (iteratedFDerivWithin π•œ i f s x)
theorem iteratedFDeriv_const_smul_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {f : E β†’ F} {x : E} {R : Type u_3} [DistribSMul R F] [SMulCommClass π•œ R F] [ContinuousConstSMul R F] {i : β„•} {a : R} (hf : ContDiffAt π•œ (↑i) f x) :
iteratedFDeriv π•œ i (a β€’ f) x = a β€’ iteratedFDeriv π•œ i f x
theorem iteratedFDeriv_const_smul_apply' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {f : E β†’ F} {x : E} {R : Type u_3} [DistribSMul R F] [SMulCommClass π•œ R F] [ContinuousConstSMul R F] {i : β„•} {a : R} (hf : ContDiffAt π•œ (↑i) f x) :
iteratedFDeriv π•œ i (fun (x : E) => a β€’ f x) x = a β€’ iteratedFDeriv π•œ i f x
theorem iteratedFDeriv_smul_const_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {A : Type u_4} [NormedRing A] [NormedAlgebra π•œ A] [Module A F] [IsScalarTower π•œ A F] [IsBoundedSMul A F] {i : β„•} {v : F} {f : E β†’ A} (hf : ContDiffAt π•œ (↑i) f x) :
iteratedFDeriv π•œ i (fun (y : E) => f y β€’ v) x = ((ContinuousLinearMap.id π•œ A).smulRight v).compContinuousMultilinearMap (iteratedFDeriv π•œ i f x)
theorem iteratedFDeriv_comp_const_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {f : E β†’ F} {i : β„•} (a : π•œ) (hf : ContDiff π•œ (↑i) f) :
(iteratedFDeriv π•œ i fun (z : E) => f (a β€’ z)) = fun (x : E) => a ^ i β€’ iteratedFDeriv π•œ i f (a β€’ x)

Cartesian product of two functions #

theorem ContDiffWithinAt.prodMap' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {E' : Type u_3} [NormedAddCommGroup E'] [NormedSpace π•œ E'] {F' : Type u_4} [NormedAddCommGroup F'] [NormedSpace π•œ F'] {s : Set E} {t : Set E'} {f : E β†’ F} {g : E' β†’ F'} {p : E Γ— E'} (hf : ContDiffWithinAt π•œ n f s p.1) (hg : ContDiffWithinAt π•œ n g t p.2) :
ContDiffWithinAt π•œ n (Prod.map f g) (s Γ—Λ’ t) p

The product map of two C^n functions within a set at a point is C^n within the product set at the product point.

theorem ContDiffWithinAt.prodMap {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {E' : Type u_3} [NormedAddCommGroup E'] [NormedSpace π•œ E'] {F' : Type u_4} [NormedAddCommGroup F'] [NormedSpace π•œ F'] {s : Set E} {t : Set E'} {f : E β†’ F} {g : E' β†’ F'} {x : E} {y : E'} (hf : ContDiffWithinAt π•œ n f s x) (hg : ContDiffWithinAt π•œ n g t y) :
ContDiffWithinAt π•œ n (Prod.map f g) (s Γ—Λ’ t) (x, y)
theorem ContDiffOn.prodMap {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace π•œ E'] {F' : Type u_6} [NormedAddCommGroup F'] [NormedSpace π•œ F'] {s : Set E} {t : Set E'} {f : E β†’ F} {g : E' β†’ F'} (hf : ContDiffOn π•œ n f s) (hg : ContDiffOn π•œ n g t) :
ContDiffOn π•œ n (Prod.map f g) (s Γ—Λ’ t)

The product map of two C^n functions on a set is C^n on the product set.

theorem ContDiffAt.prodMap {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {E' : Type u_3} [NormedAddCommGroup E'] [NormedSpace π•œ E'] {F' : Type u_4} [NormedAddCommGroup F'] [NormedSpace π•œ F'] {f : E β†’ F} {g : E' β†’ F'} {x : E} {y : E'} (hf : ContDiffAt π•œ n f x) (hg : ContDiffAt π•œ n g y) :
ContDiffAt π•œ n (Prod.map f g) (x, y)

The product map of two C^n functions within a set at a point is C^n within the product set at the product point.

theorem ContDiffAt.prodMap' {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {E' : Type u_3} [NormedAddCommGroup E'] [NormedSpace π•œ E'] {F' : Type u_4} [NormedAddCommGroup F'] [NormedSpace π•œ F'] {f : E β†’ F} {g : E' β†’ F'} {p : E Γ— E'} (hf : ContDiffAt π•œ n f p.1) (hg : ContDiffAt π•œ n g p.2) :
ContDiffAt π•œ n (Prod.map f g) p

The product map of two C^n functions within a set at a point is C^n within the product set at the product point.

theorem ContDiff.prodMap {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} {E' : Type u_3} [NormedAddCommGroup E'] [NormedSpace π•œ E'] {F' : Type u_4} [NormedAddCommGroup F'] [NormedSpace π•œ F'] {f : E β†’ F} {g : E' β†’ F'} (hf : ContDiff π•œ n f) (hg : ContDiff π•œ n g) :
ContDiff π•œ n (Prod.map f g)

The product map of two C^n functions is C^n.

theorem contDiff_prodMk_left {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} (fβ‚€ : F) :
ContDiff π•œ n fun (e : E) => (e, fβ‚€)
theorem contDiff_prodMk_right {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} (eβ‚€ : E) :
ContDiff π•œ n fun (f : F) => (eβ‚€, f)

Inversion in a complete normed algebra (or more generally with summable geometric series) #

theorem contDiffAt_ringInverse (π•œ : Type u_1) [NontriviallyNormedField π•œ] {n : WithTop β„•βˆž} {R : Type u_3} [NormedRing R] [NormedAlgebra π•œ R] [HasSummableGeomSeries R] (x : RΛ£) :
ContDiffAt π•œ n Ring.inverse ↑x

In a complete normed algebra, the operation of inversion is C^n, for all n, at each invertible element, as it is analytic.

theorem contDiffAt_inv (π•œ : Type u_1) [NontriviallyNormedField π•œ] {π•œ' : Type u_4} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {x : π•œ'} (hx : x β‰  0) {n : WithTop β„•βˆž} :
ContDiffAt π•œ n Inv.inv x
theorem contDiffOn_inv (π•œ : Type u_1) [NontriviallyNormedField π•œ] {π•œ' : Type u_4} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {n : WithTop β„•βˆž} :
theorem ContDiffWithinAt.inv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {x : E} {π•œ' : Type u_4} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} {n : WithTop β„•βˆž} (hf : ContDiffWithinAt π•œ n f s x) (hx : f x β‰  0) :
theorem ContDiffWithinAt.fun_inv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {x : E} {π•œ' : Type u_4} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} {n : WithTop β„•βˆž} (hf : ContDiffWithinAt π•œ n f s x) (hx : f x β‰  0) :
ContDiffWithinAt π•œ n (fun (i : E) => (f i)⁻¹) s x

Eta-expanded form of ContDiffWithinAt.inv

theorem ContDiffOn.inv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {n : WithTop β„•βˆž} {π•œ' : Type u_4} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} (hf : ContDiffOn π•œ n f s) (h : βˆ€ x ∈ s, f x β‰  0) :
ContDiffOn π•œ n f⁻¹ s
theorem ContDiffOn.fun_inv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {n : WithTop β„•βˆž} {π•œ' : Type u_4} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} (hf : ContDiffOn π•œ n f s) (h : βˆ€ x ∈ s, f x β‰  0) :
ContDiffOn π•œ n (fun (i : E) => (f i)⁻¹) s

Eta-expanded form of ContDiffOn.inv

theorem ContDiffAt.inv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {n : WithTop β„•βˆž} {π•œ' : Type u_4} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} (hf : ContDiffAt π•œ n f x) (hx : f x β‰  0) :
ContDiffAt π•œ n f⁻¹ x
theorem ContDiffAt.fun_inv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {n : WithTop β„•βˆž} {π•œ' : Type u_4} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} (hf : ContDiffAt π•œ n f x) (hx : f x β‰  0) :
ContDiffAt π•œ n (fun (i : E) => (f i)⁻¹) x

Eta-expanded form of ContDiffAt.inv

theorem ContDiff.inv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {π•œ' : Type u_4} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} (hf : ContDiff π•œ n f) (h : βˆ€ (x : E), f x β‰  0) :
ContDiff π•œ n f⁻¹
theorem ContDiff.fun_inv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {n : WithTop β„•βˆž} {π•œ' : Type u_4} [NormedField π•œ'] [NormedAlgebra π•œ π•œ'] {f : E β†’ π•œ'} (hf : ContDiff π•œ n f) (h : βˆ€ (x : E), f x β‰  0) :
ContDiff π•œ n fun (i : E) => (f i)⁻¹

Eta-expanded form of ContDiff.inv

theorem ContDiffWithinAt.div {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {x : E} {f g : E β†’ π•œ} {n : WithTop β„•βˆž} (hf : ContDiffWithinAt π•œ n f s x) (hg : ContDiffWithinAt π•œ n g s x) (hx : g x β‰  0) :
ContDiffWithinAt π•œ n (f / g) s x
theorem ContDiffWithinAt.fun_div {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {x : E} {f g : E β†’ π•œ} {n : WithTop β„•βˆž} (hf : ContDiffWithinAt π•œ n f s x) (hg : ContDiffWithinAt π•œ n g s x) (hx : g x β‰  0) :
ContDiffWithinAt π•œ n (fun (i : E) => f i / g i) s x

Eta-expanded form of ContDiffWithinAt.div

theorem ContDiffOn.div {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {f g : E β†’ π•œ} {n : WithTop β„•βˆž} (hf : ContDiffOn π•œ n f s) (hg : ContDiffOn π•œ n g s) (hβ‚€ : βˆ€ x ∈ s, g x β‰  0) :
ContDiffOn π•œ n (f / g) s
theorem ContDiffOn.fun_div {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : Set E} {f g : E β†’ π•œ} {n : WithTop β„•βˆž} (hf : ContDiffOn π•œ n f s) (hg : ContDiffOn π•œ n g s) (hβ‚€ : βˆ€ x ∈ s, g x β‰  0) :
ContDiffOn π•œ n (fun (i : E) => f i / g i) s

Eta-expanded form of ContDiffOn.div

theorem ContDiffAt.div {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {f g : E β†’ π•œ} {n : WithTop β„•βˆž} (hf : ContDiffAt π•œ n f x) (hg : ContDiffAt π•œ n g x) (hx : g x β‰  0) :
ContDiffAt π•œ n (f / g) x
theorem ContDiffAt.fun_div {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : E} {f g : E β†’ π•œ} {n : WithTop β„•βˆž} (hf : ContDiffAt π•œ n f x) (hg : ContDiffAt π•œ n g x) (hx : g x β‰  0) :
ContDiffAt π•œ n (fun (i : E) => f i / g i) x

Eta-expanded form of ContDiffAt.div

theorem ContDiff.div {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {f g : E β†’ π•œ} {n : WithTop β„•βˆž} (hf : ContDiff π•œ n f) (hg : ContDiff π•œ n g) (h0 : βˆ€ (x : E), g x β‰  0) :
ContDiff π•œ n (f / g)
theorem ContDiff.fun_div {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {f g : E β†’ π•œ} {n : WithTop β„•βˆž} (hf : ContDiff π•œ n f) (hg : ContDiff π•œ n g) (h0 : βˆ€ (x : E), g x β‰  0) :
ContDiff π•œ n fun (i : E) => f i / g i

Eta-expanded form of ContDiff.div

Inversion of continuous linear maps between Banach spaces #

theorem contDiffAt_map_inverse {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} [CompleteSpace E] (e : E ≃L[π•œ] F) :

At a continuous linear equivalence e : E ≃L[π•œ] F between Banach spaces, the operation of inversion is C^n, for all n.

theorem ContinuousLinearMap.IsInvertible.contDiffAt_map_inverse {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} [CompleteSpace E] {e : E β†’L[π•œ] F} (he : e.IsInvertible) :
ContDiffAt π•œ n inverse e

At an invertible map e : M β†’L[R] Mβ‚‚ between Banach spaces, the operation of inversion is C^n, for all n.

theorem OpenPartialHomeomorph.contDiffAt_symm {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} [CompleteSpace E] (f : OpenPartialHomeomorph E F) {fβ‚€' : E ≃L[π•œ] F} {a : F} (ha : a ∈ f.target) (hfβ‚€' : HasFDerivAt (↑f) (↑fβ‚€') (↑f.symm a)) (hf : ContDiffAt π•œ n (↑f) (↑f.symm a)) :
ContDiffAt π•œ n (↑f.symm) a

If f is a local homeomorphism and the point a is in its target, and if f is n times continuously differentiable at f.symm a, and if the derivative at f.symm a is a continuous linear equivalence, then f.symm is n times continuously differentiable at the point a.

This is one of the easy parts of the inverse function theorem: it assumes that we already have an inverse function.

theorem Homeomorph.contDiff_symm {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : WithTop β„•βˆž} [CompleteSpace E] (f : E β‰ƒβ‚œ F) {fβ‚€' : E β†’ E ≃L[π•œ] F} (hfβ‚€' : βˆ€ (a : E), HasFDerivAt (⇑f) (↑(fβ‚€' a)) a) (hf : ContDiff π•œ n ⇑f) :
ContDiff π•œ n ⇑f.symm

If f is an n times continuously differentiable homeomorphism, and if the derivative of f at each point is a continuous linear equivalence, then f.symm is n times continuously differentiable.

This is one of the easy parts of the inverse function theorem: it assumes that we already have an inverse function.

theorem OpenPartialHomeomorph.contDiffAt_symm_deriv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {n : WithTop β„•βˆž} [CompleteSpace π•œ] (f : OpenPartialHomeomorph π•œ π•œ) {fβ‚€' a : π•œ} (hβ‚€ : fβ‚€' β‰  0) (ha : a ∈ f.target) (hfβ‚€' : HasDerivAt (↑f) fβ‚€' (↑f.symm a)) (hf : ContDiffAt π•œ n (↑f) (↑f.symm a)) :
ContDiffAt π•œ n (↑f.symm) a

Let f be a local homeomorphism of a nontrivially normed field, let a be a point in its target. if f is n times continuously differentiable at f.symm a, and if the derivative at f.symm a is nonzero, then f.symm is n times continuously differentiable at the point a.

This is one of the easy parts of the inverse function theorem: it assumes that we already have an inverse function.

theorem Homeomorph.contDiff_symm_deriv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {n : WithTop β„•βˆž} [CompleteSpace π•œ] (f : π•œ β‰ƒβ‚œ π•œ) {f' : π•œ β†’ π•œ} (hβ‚€ : βˆ€ (x : π•œ), f' x β‰  0) (hf' : βˆ€ (x : π•œ), HasDerivAt (⇑f) (f' x) x) (hf : ContDiff π•œ n ⇑f) :
ContDiff π•œ n ⇑f.symm

Let f be an n times continuously differentiable homeomorphism of a nontrivially normed field. Suppose that the derivative of f is never equal to zero. Then f.symm is n times continuously differentiable.

This is one of the easy parts of the inverse function theorem: it assumes that we already have an inverse function.

Restrict an open partial homeomorphism to the subsets of the source and target that consist of points x ∈ f.source, y = f x ∈ f.target such that f is C^n at x and f.symm is C^n at y.

Note that n is a natural number or Ο‰, but not ∞, because the set of points of C^∞-smoothness of f is not guaranteed to be open.

Instances For
    @[simp]
    theorem OpenPartialHomeomorph.restrContDiff_target (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] (f : OpenPartialHomeomorph E F) (n : WithTop β„•βˆž) (hn : n β‰  β†‘βŠ€) :
    (restrContDiff π•œ f n hn).target = f.target ∩ {y : F | ContDiffAt π•œ n (↑f.symm) y ∧ ContDiffAt π•œ n (↑f) (↑f.symm y)}
    @[simp]
    theorem OpenPartialHomeomorph.restrContDiff_apply (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] (f : OpenPartialHomeomorph E F) (n : WithTop β„•βˆž) (hn : n β‰  β†‘βŠ€) (a✝ : E) :
    ↑(restrContDiff π•œ f n hn) a✝ = ↑f a✝
    @[simp]
    theorem OpenPartialHomeomorph.restrContDiff_source (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] (f : OpenPartialHomeomorph E F) (n : WithTop β„•βˆž) (hn : n β‰  β†‘βŠ€) :
    (restrContDiff π•œ f n hn).source = f.source ∩ {x : E | ContDiffAt π•œ n (↑f) x ∧ ContDiffAt π•œ n (↑f.symm) (↑f x)}
    @[simp]
    theorem OpenPartialHomeomorph.restrContDiff_symm_apply (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] (f : OpenPartialHomeomorph E F) (n : WithTop β„•βˆž) (hn : n β‰  β†‘βŠ€) (a✝ : F) :
    ↑(restrContDiff π•œ f n hn).symm a✝ = ↑f.symm a✝
    theorem OpenPartialHomeomorph.contDiffOn_restrContDiff_source (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] (f : OpenPartialHomeomorph E F) {n : WithTop β„•βˆž} (hn : n β‰  β†‘βŠ€) :
    ContDiffOn π•œ n (↑f) (restrContDiff π•œ f n hn).source
    theorem OpenPartialHomeomorph.contDiffOn_restrContDiff_target (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] (f : OpenPartialHomeomorph E F) {n : WithTop β„•βˆž} (hn : n β‰  β†‘βŠ€) :
    ContDiffOn π•œ n (↑f.symm) (restrContDiff π•œ f n hn).target

    Restricting from β„‚ to ℝ, or generally from π•œ' to π•œ #

    If a function is n times continuously differentiable over β„‚, then it is n times continuously differentiable over ℝ. In this paragraph, we give variants of this statement, in the general situation where β„‚ and ℝ are replaced respectively by π•œ' and π•œ where π•œ' is a normed algebra over π•œ.

    theorem HasFTaylorSeriesUpToOn.restrictScalars (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {f : E β†’ F} {π•œ' : Type u_3} [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] [NormedSpace π•œ' E] [IsScalarTower π•œ π•œ' E] [NormedSpace π•œ' F] [IsScalarTower π•œ π•œ' F] {p' : E β†’ FormalMultilinearSeries π•œ' E F} {n : WithTop β„•βˆž} (h : HasFTaylorSeriesUpToOn n f p' s) :
    theorem ContDiffWithinAt.restrict_scalars (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {f : E β†’ F} {x : E} {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] [NormedSpace π•œ' E] [IsScalarTower π•œ π•œ' E] [NormedSpace π•œ' F] [IsScalarTower π•œ π•œ' F] (h : ContDiffWithinAt π•œ' n f s x) :
    ContDiffWithinAt π•œ n f s x
    theorem ContDiffOn.restrict_scalars (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {s : Set E} {f : E β†’ F} {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] [NormedSpace π•œ' E] [IsScalarTower π•œ π•œ' E] [NormedSpace π•œ' F] [IsScalarTower π•œ π•œ' F] (h : ContDiffOn π•œ' n f s) :
    ContDiffOn π•œ n f s
    theorem ContDiffAt.restrict_scalars (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {f : E β†’ F} {x : E} {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] [NormedSpace π•œ' E] [IsScalarTower π•œ π•œ' E] [NormedSpace π•œ' F] [IsScalarTower π•œ π•œ' F] (h : ContDiffAt π•œ' n f x) :
    ContDiffAt π•œ n f x
    theorem ContDiff.restrict_scalars (π•œ : Type u_1) [NontriviallyNormedField π•œ] {E : Type uE} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace π•œ F] {f : E β†’ F} {n : WithTop β„•βˆž} {π•œ' : Type u_3} [NontriviallyNormedField π•œ'] [NormedAlgebra π•œ π•œ'] [NormedSpace π•œ' E] [IsScalarTower π•œ π•œ' E] [NormedSpace π•œ' F] [IsScalarTower π•œ π•œ' F] (h : ContDiff π•œ' n f) :
    ContDiff π•œ n f