HepLean Documentation

Mathlib.Analysis.Calculus.FDeriv.Analytic

Frechet derivatives of analytic functions. #

A function expressible as a power series at a point has a Frechet derivative there. Also the special case in terms of deriv when the domain is 1-dimensional.

As an application, we show that continuous multilinear maps are smooth. We also compute their iterated derivatives, in ContinuousMultilinearMap.iteratedFDeriv_eq.

Main definitions and results #

Comments on completeness #

Some theorems need a complete space, some don't, for the following reason.

(1) If a function is analytic at a point x, then it is differentiable there (with derivative given by the first term in the power series). There is no issue of convergence here.

(2) If a function has a power series on a ball B (x, r), there is no guarantee that the power series for the derivative will converge at y โ‰  x, if the space is not complete. So, to deduce that f is differentiable at y, one needs completeness in general.

(3) However, if a function f has a power series on a ball B (x, r), and is a priori known to be differentiable at some point y โ‰  x, then the power series for the derivative of f will automatically converge at y, towards the given derivative: this follows from the facts that this is true in the completion (thanks to the previous point) and that the map to the completion is an embedding.

(4) Therefore, if one assumes AnalyticOn ๐•œ f s where s is an open set, then f is analytic therefore differentiable at every point of s, by (1), so by (3) the power series for its derivative converges on whole balls. Therefore, the derivative of f is also analytic on s. The same holds if s is merely a set with unique differentials.

(5) However, this does not work for AnalyticOnNhd ๐•œ f s, as we don't get for free differentiability at points in a neighborhood of s. Therefore, the theorem that deduces AnalyticOnNhd ๐•œ (fderiv ๐•œ f) s from AnalyticOnNhd ๐•œ f s requires completeness of the space.

theorem HasFPowerSeriesWithinAt.hasStrictFDerivWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {f : E โ†’ F} {x : E} {s : Set E} (h : HasFPowerSeriesWithinAt f p s x) :
(fun (y : E ร— E) => f y.1 - f y.2 - ((continuousMultilinearCurryFin1 ๐•œ E F) (p 1)) (y.1 - y.2)) =o[nhdsWithin (x, x) (insert x s ร—หข insert x s)] fun (y : E ร— E) => y.1 - y.2

A function which is analytic within a set is strictly differentiable there. Since we don't have a predicate HasStrictFDerivWithinAt, we spell out what it would mean.

theorem HasFPowerSeriesAt.hasStrictFDerivAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {f : E โ†’ F} {x : E} (h : HasFPowerSeriesAt f p x) :
theorem HasFPowerSeriesWithinAt.hasFDerivWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {f : E โ†’ F} {x : E} {s : Set E} (h : HasFPowerSeriesWithinAt f p s x) :
HasFDerivWithinAt f ((continuousMultilinearCurryFin1 ๐•œ E F) (p 1)) (insert x s) x
theorem HasFPowerSeriesAt.hasFDerivAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {f : E โ†’ F} {x : E} (h : HasFPowerSeriesAt f p x) :
HasFDerivAt f ((continuousMultilinearCurryFin1 ๐•œ E F) (p 1)) x
theorem HasFPowerSeriesWithinAt.differentiableWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {f : E โ†’ F} {x : E} {s : Set E} (h : HasFPowerSeriesWithinAt f p s x) :
DifferentiableWithinAt ๐•œ f (insert x s) x
theorem HasFPowerSeriesAt.differentiableAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {f : E โ†’ F} {x : E} (h : HasFPowerSeriesAt f p x) :
DifferentiableAt ๐•œ f x
theorem AnalyticWithinAt.differentiableWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {x : E} {s : Set E} (h : AnalyticWithinAt ๐•œ f s x) :
DifferentiableWithinAt ๐•œ f (insert x s) x
theorem AnalyticAt.differentiableAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {x : E} :
AnalyticAt ๐•œ f x โ†’ DifferentiableAt ๐•œ f x
theorem AnalyticAt.differentiableWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {x : E} {s : Set E} (h : AnalyticAt ๐•œ f x) :
DifferentiableWithinAt ๐•œ f s x
theorem HasFPowerSeriesWithinAt.fderivWithin_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {f : E โ†’ F} {x : E} {s : Set E} (h : HasFPowerSeriesWithinAt f p s x) (hu : UniqueDiffWithinAt ๐•œ (insert x s) x) :
fderivWithin ๐•œ f (insert x s) x = (continuousMultilinearCurryFin1 ๐•œ E F) (p 1)
theorem HasFPowerSeriesAt.fderiv_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {f : E โ†’ F} {x : E} (h : HasFPowerSeriesAt f p x) :
fderiv ๐•œ f x = (continuousMultilinearCurryFin1 ๐•œ E F) (p 1)
theorem AnalyticAt.hasStrictFDerivAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {x : E} (h : AnalyticAt ๐•œ f x) :
HasStrictFDerivAt f (fderiv ๐•œ f x) x
theorem HasFPowerSeriesWithinOnBall.differentiableOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {f : E โ†’ F} {x : E} {s : Set E} [CompleteSpace F] (h : HasFPowerSeriesWithinOnBall f p s x r) :
theorem HasFPowerSeriesOnBall.differentiableOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {f : E โ†’ F} {x : E} [CompleteSpace F] (h : HasFPowerSeriesOnBall f p x r) :
DifferentiableOn ๐•œ f (EMetric.ball x r)
theorem AnalyticOn.differentiableOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} (h : AnalyticOn ๐•œ f s) :
DifferentiableOn ๐•œ f s
theorem AnalyticOnNhd.differentiableOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} (h : AnalyticOnNhd ๐•œ f s) :
DifferentiableOn ๐•œ f s
theorem HasFPowerSeriesWithinOnBall.hasFDerivWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {f : E โ†’ F} {x : E} {s : Set E} [CompleteSpace F] (h : HasFPowerSeriesWithinOnBall f p s x r) {y : E} (hy : โ†‘โ€–yโ€–โ‚Š < r) (h'y : x + y โˆˆ insert x s) :
HasFDerivWithinAt f ((continuousMultilinearCurryFin1 ๐•œ E F) (p.changeOrigin y 1)) (insert x s) (x + y)
theorem HasFPowerSeriesOnBall.hasFDerivAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {f : E โ†’ F} {x : E} [CompleteSpace F] (h : HasFPowerSeriesOnBall f p x r) {y : E} (hy : โ†‘โ€–yโ€–โ‚Š < r) :
HasFDerivAt f ((continuousMultilinearCurryFin1 ๐•œ E F) (p.changeOrigin y 1)) (x + y)
theorem HasFPowerSeriesWithinOnBall.fderivWithin_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {f : E โ†’ F} {x : E} {s : Set E} [CompleteSpace F] (h : HasFPowerSeriesWithinOnBall f p s x r) {y : E} (hy : โ†‘โ€–yโ€–โ‚Š < r) (h'y : x + y โˆˆ insert x s) (hu : UniqueDiffOn ๐•œ (insert x s)) :
fderivWithin ๐•œ f (insert x s) (x + y) = (continuousMultilinearCurryFin1 ๐•œ E F) (p.changeOrigin y 1)
theorem HasFPowerSeriesOnBall.fderiv_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {f : E โ†’ F} {x : E} [CompleteSpace F] (h : HasFPowerSeriesOnBall f p x r) {y : E} (hy : โ†‘โ€–yโ€–โ‚Š < r) :
fderiv ๐•œ f (x + y) = (continuousMultilinearCurryFin1 ๐•œ E F) (p.changeOrigin y 1)
theorem HasFPowerSeriesOnBall.fderiv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {f : E โ†’ F} {x : E} [CompleteSpace F] (h : HasFPowerSeriesOnBall f p x r) :
HasFPowerSeriesOnBall (fderiv ๐•œ f) p.derivSeries x r

If a function has a power series on a ball, then so does its derivative.

theorem HasFPowerSeriesWithinOnBall.fderivWithin {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {f : E โ†’ F} {x : E} {s : Set E} [CompleteSpace F] (h : HasFPowerSeriesWithinOnBall f p s x r) (hu : UniqueDiffOn ๐•œ (insert x s)) :
HasFPowerSeriesWithinOnBall (fderivWithin ๐•œ f (insert x s)) p.derivSeries s x r

If a function has a power series within a set on a ball, then so does its derivative.

theorem AnalyticAt.fderiv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {x : E} [CompleteSpace F] (h : AnalyticAt ๐•œ f x) :
AnalyticAt ๐•œ (fderiv ๐•œ f) x

If a function is analytic on a set s, so is its Frรฉchet derivative.

theorem AnalyticOnNhd.fderiv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} [CompleteSpace F] (h : AnalyticOnNhd ๐•œ f s) :
AnalyticOnNhd ๐•œ (fderiv ๐•œ f) s

If a function is analytic on a set s, so is its Frรฉchet derivative. See also AnalyticOnNhd.fderiv_of_isOpen, removing the completeness assumption but requiring the set to be open.

@[deprecated AnalyticOnNhd.fderiv]
theorem AnalyticOn.fderiv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} [CompleteSpace F] (h : AnalyticOnNhd ๐•œ f s) :
AnalyticOnNhd ๐•œ (fderiv ๐•œ f) s

Alias of AnalyticOnNhd.fderiv.


If a function is analytic on a set s, so is its Frรฉchet derivative. See also AnalyticOnNhd.fderiv_of_isOpen, removing the completeness assumption but requiring the set to be open.

theorem AnalyticOnNhd.iteratedFDeriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} [CompleteSpace F] (h : AnalyticOnNhd ๐•œ f s) (n : โ„•) :
AnalyticOnNhd ๐•œ (iteratedFDeriv ๐•œ n f) s

If a function is analytic on a set s, so are its successive Frรฉchet derivative. See also AnalyticOnNhd.iteratedFDeriv_of_isOpen, removing the completeness assumption but requiring the set to be open.

@[deprecated AnalyticOnNhd.iteratedFDeriv]
theorem AnalyticOn.iteratedFDeriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} [CompleteSpace F] (h : AnalyticOnNhd ๐•œ f s) (n : โ„•) :
AnalyticOnNhd ๐•œ (iteratedFDeriv ๐•œ n f) s

Alias of AnalyticOnNhd.iteratedFDeriv.


If a function is analytic on a set s, so are its successive Frรฉchet derivative. See also AnalyticOnNhd.iteratedFDeriv_of_isOpen, removing the completeness assumption but requiring the set to be open.

theorem AnalyticOnNhd.hasFTaylorSeriesUpToOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} [CompleteSpace F] (n : WithTop โ„•โˆž) (h : AnalyticOnNhd ๐•œ f s) :

If a function is analytic on a neighborhood of a set s, then it has a Taylor series given by the sequence of its derivatives. Note that, if the function were just analytic on s, then one would have to use instead the sequence of derivatives inside the set, as in AnalyticOn.hasFTaylorSeriesUpToOn.

theorem AnalyticWithinAt.exists_hasFTaylorSeriesUpToOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {x : E} {s : Set E} [CompleteSpace F] (n : WithTop โ„•โˆž) (h : AnalyticWithinAt ๐•œ f s x) :
โˆƒ u โˆˆ nhdsWithin x (insert x s), โˆƒ (p : E โ†’ FormalMultilinearSeries ๐•œ E F), HasFTaylorSeriesUpToOn n f p u โˆง โˆ€ (i : โ„•), AnalyticOn ๐•œ (fun (x : E) => p x i) u
theorem HasFPowerSeriesWithinOnBall.hasSum_derivSeries_of_hasFDerivWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {f : E โ†’ F} {x : E} {s : Set E} (h : HasFPowerSeriesWithinOnBall f p s x r) {f' : E โ†’L[๐•œ] F} {y : E} (hy : โ†‘โ€–yโ€–โ‚Š < r) (h'y : x + y โˆˆ insert x s) (hf' : HasFDerivWithinAt f f' (insert x s) (x + y)) (hu : UniqueDiffOn ๐•œ (insert x s)) :
HasSum (fun (n : โ„•) => (p.derivSeries n) fun (x : Fin n) => y) f'

If a function has a power series p within a set of unique differentiability, inside a ball, and is differentiable at a point, then the derivative series of p is summable at a point, with sum the given differential. Note that this theorem does not require completeness of the space.

theorem AnalyticOn.fderivWithin {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} (h : AnalyticOn ๐•œ f s) (hu : UniqueDiffOn ๐•œ s) :
AnalyticOn ๐•œ (fderivWithin ๐•œ f s) s

If a function is analytic within a set with unique differentials, then so is its derivative. Note that this theorem does not require completeness of the space.

theorem AnalyticOn.iteratedFDerivWithin {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} (h : AnalyticOn ๐•œ f s) (hu : UniqueDiffOn ๐•œ s) (n : โ„•) :
AnalyticOn ๐•œ (iteratedFDerivWithin ๐•œ n f s) s

If a function is analytic on a set s, so are its successive Frรฉchet derivative within this set. Note that this theorem does not require completeness of the space.

theorem AnalyticOn.hasFTaylorSeriesUpToOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} {n : WithTop โ„•โˆž} (h : AnalyticOn ๐•œ f s) (hu : UniqueDiffOn ๐•œ s) :
theorem AnalyticOn.exists_hasFTaylorSeriesUpToOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} (h : AnalyticOn ๐•œ f s) (hu : UniqueDiffOn ๐•œ s) :
โˆƒ (p : E โ†’ FormalMultilinearSeries ๐•œ E F), HasFTaylorSeriesUpToOn โŠค f p s โˆง โˆ€ (i : โ„•), AnalyticOn ๐•œ (fun (x : E) => p x i) s
theorem AnalyticOnNhd.fderiv_of_isOpen {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} (h : AnalyticOnNhd ๐•œ f s) (hs : IsOpen s) :
AnalyticOnNhd ๐•œ (fderiv ๐•œ f) s
theorem AnalyticOnNhd.iteratedFDeriv_of_isOpen {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} (h : AnalyticOnNhd ๐•œ f s) (hs : IsOpen s) (n : โ„•) :
AnalyticOnNhd ๐•œ (iteratedFDeriv ๐•œ n f) s
theorem PartialHomeomorph.analyticAt_symm' {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] (f : PartialHomeomorph E F) {a : E} {i : E โ‰ƒL[๐•œ] F} (h0 : a โˆˆ f.source) (h : AnalyticAt ๐•œ (โ†‘f) a) (h' : fderiv ๐•œ (โ†‘f) a = โ†‘i) :
AnalyticAt ๐•œ (โ†‘f.symm) (โ†‘f a)

If a partial homeomorphism f is analytic at a point a, with invertible derivative, then its inverse is analytic at f a.

theorem PartialHomeomorph.analyticAt_symm {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] (f : PartialHomeomorph E F) {a : F} {i : E โ‰ƒL[๐•œ] F} (h0 : a โˆˆ f.target) (h : AnalyticAt ๐•œ (โ†‘f) (โ†‘f.symm a)) (h' : fderiv ๐•œ (โ†‘f) (โ†‘f.symm a) = โ†‘i) :
AnalyticAt ๐•œ (โ†‘f.symm) a

If a partial homeomorphism f is analytic at a point f.symm a, with invertible derivative, then its inverse is analytic at a.

theorem HasFPowerSeriesAt.hasStrictDerivAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ ๐•œ F} {f : ๐•œ โ†’ F} {x : ๐•œ} (h : HasFPowerSeriesAt f p x) :
HasStrictDerivAt f ((p 1) fun (x : Fin 1) => 1) x
theorem HasFPowerSeriesAt.hasDerivAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ ๐•œ F} {f : ๐•œ โ†’ F} {x : ๐•œ} (h : HasFPowerSeriesAt f p x) :
HasDerivAt f ((p 1) fun (x : Fin 1) => 1) x
theorem HasFPowerSeriesAt.deriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ ๐•œ F} {f : ๐•œ โ†’ F} {x : ๐•œ} (h : HasFPowerSeriesAt f p x) :
deriv f x = (p 1) fun (x : Fin 1) => 1
theorem AnalyticOnNhd.deriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : ๐•œ โ†’ F} {s : Set ๐•œ} [CompleteSpace F] (h : AnalyticOnNhd ๐•œ f s) :
AnalyticOnNhd ๐•œ (deriv f) s

If a function is analytic on a set s in a complete space, so is its derivative.

@[deprecated AnalyticOnNhd.deriv]
theorem AnalyticOn.deriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : ๐•œ โ†’ F} {s : Set ๐•œ} [CompleteSpace F] (h : AnalyticOnNhd ๐•œ f s) :
AnalyticOnNhd ๐•œ (deriv f) s

Alias of AnalyticOnNhd.deriv.


If a function is analytic on a set s in a complete space, so is its derivative.

theorem AnalyticOnNhd.deriv_of_isOpen {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : ๐•œ โ†’ F} {s : Set ๐•œ} (h : AnalyticOnNhd ๐•œ f s) (hs : IsOpen s) :
AnalyticOnNhd ๐•œ (deriv f) s

If a function is analytic on an open set s, so is its derivative.

theorem AnalyticOnNhd.iterated_deriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : ๐•œ โ†’ F} {s : Set ๐•œ} [CompleteSpace F] (h : AnalyticOnNhd ๐•œ f s) (n : โ„•) :
AnalyticOnNhd ๐•œ (deriv^[n] f) s

If a function is analytic on a set s, so are its successive derivatives.

@[deprecated AnalyticOnNhd.iterated_deriv]
theorem AnalyticOn.iterated_deriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : ๐•œ โ†’ F} {s : Set ๐•œ} [CompleteSpace F] (h : AnalyticOnNhd ๐•œ f s) (n : โ„•) :
AnalyticOnNhd ๐•œ (deriv^[n] f) s

Alias of AnalyticOnNhd.iterated_deriv.


If a function is analytic on a set s, so are its successive derivatives.

The case of continuously polynomial functions. We get the same differentiability results as for analytic functions, but without the assumptions that F is complete.

theorem HasFiniteFPowerSeriesOnBall.differentiableOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {n : โ„•} {f : E โ†’ F} {x : E} (h : HasFiniteFPowerSeriesOnBall f p x n r) :
DifferentiableOn ๐•œ f (EMetric.ball x r)
theorem HasFiniteFPowerSeriesOnBall.hasFDerivAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {n : โ„•} {f : E โ†’ F} {x : E} (h : HasFiniteFPowerSeriesOnBall f p x n r) {y : E} (hy : โ†‘โ€–yโ€–โ‚Š < r) :
HasFDerivAt f ((continuousMultilinearCurryFin1 ๐•œ E F) (p.changeOrigin y 1)) (x + y)
theorem HasFiniteFPowerSeriesOnBall.fderiv_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {n : โ„•} {f : E โ†’ F} {x : E} (h : HasFiniteFPowerSeriesOnBall f p x n r) {y : E} (hy : โ†‘โ€–yโ€–โ‚Š < r) :
fderiv ๐•œ f (x + y) = (continuousMultilinearCurryFin1 ๐•œ E F) (p.changeOrigin y 1)
theorem HasFiniteFPowerSeriesOnBall.fderiv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {n : โ„•} {f : E โ†’ F} {x : E} (h : HasFiniteFPowerSeriesOnBall f p x (n + 1) r) :
HasFiniteFPowerSeriesOnBall (fderiv ๐•œ f) p.derivSeries x n r

If a function has a finite power series on a ball, then so does its derivative.

theorem HasFiniteFPowerSeriesOnBall.fderiv' {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {r : ENNReal} {n : โ„•} {f : E โ†’ F} {x : E} (h : HasFiniteFPowerSeriesOnBall f p x n r) :
HasFiniteFPowerSeriesOnBall (fderiv ๐•œ f) p.derivSeries x (n - 1) r

If a function has a finite power series on a ball, then so does its derivative. This is a variant of HasFiniteFPowerSeriesOnBall.fderiv where the degree of f is < n and not < n + 1.

theorem CPolynomialOn.fderiv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} (h : CPolynomialOn ๐•œ f s) :
CPolynomialOn ๐•œ (fderiv ๐•œ f) s

If a function is polynomial on a set s, so is its Frรฉchet derivative.

theorem CPolynomialOn.iteratedFDeriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : E โ†’ F} {s : Set E} (h : CPolynomialOn ๐•œ f s) (n : โ„•) :
CPolynomialOn ๐•œ (iteratedFDeriv ๐•œ n f) s

If a function is polynomial on a set s, so are its successive Frรฉchet derivative.

theorem CPolynomialOn.deriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : ๐•œ โ†’ F} {s : Set ๐•œ} (h : CPolynomialOn ๐•œ f s) :
CPolynomialOn ๐•œ (deriv f) s

If a function is polynomial on a set s, so is its derivative.

theorem CPolynomialOn.iterated_deriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : ๐•œ โ†’ F} {s : Set ๐•œ} (h : CPolynomialOn ๐•œ f s) (n : โ„•) :
CPolynomialOn ๐•œ (deriv^[n] f) s

If a function is polynomial on a set s, so are its successive derivatives.

theorem ContinuousMultilinearMap.changeOriginSeries_support {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {E : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] [Fintype ฮน] (f : ContinuousMultilinearMap ๐•œ E F) {k l : โ„•} (h : k + l โ‰  Fintype.card ฮน) :
f.toFormalMultilinearSeries.changeOriginSeries k l = 0
theorem ContinuousMultilinearMap.changeOrigin_toFormalMultilinearSeries {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {E : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] [Fintype ฮน] (f : ContinuousMultilinearMap ๐•œ E F) (x : (i : ฮน) โ†’ E i) [DecidableEq ฮน] :
(continuousMultilinearCurryFin1 ๐•œ ((i : ฮน) โ†’ E i) F) (f.toFormalMultilinearSeries.changeOrigin x 1) = f.linearDeriv x
theorem ContinuousMultilinearMap.hasFDerivAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {E : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] [Fintype ฮน] (f : ContinuousMultilinearMap ๐•œ E F) (x : (i : ฮน) โ†’ E i) [DecidableEq ฮน] :
HasFDerivAt (โ‡‘f) (f.linearDeriv x) x
theorem HasFDerivWithinAt.multilinear_comp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {E : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] [Fintype ฮน] (f : ContinuousMultilinearMap ๐•œ E F) [DecidableEq ฮน] {G : Type u_4} [NormedAddCommGroup G] [NormedSpace ๐•œ G] {g : (i : ฮน) โ†’ G โ†’ E i} {g' : (i : ฮน) โ†’ G โ†’L[๐•œ] E i} {s : Set G} {x : G} (hg : โˆ€ (i : ฮน), HasFDerivWithinAt (g i) (g' i) s x) :
HasFDerivWithinAt (fun (x : G) => f fun (i : ฮน) => g i x) (โˆ‘ i : ฮน, (f.toContinuousLinearMap (fun (j : ฮน) => g j x) i).comp (g' i)) s x

Given f a multilinear map, then the derivative of x โ†ฆ f (gโ‚ x, ..., gโ‚™ x) at x applied to a vector v is given by โˆ‘ i, f (gโ‚ x, ..., g'แตข v, ..., gโ‚™ x). Version inside a set.

theorem HasFDerivAt.multilinear_comp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {E : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] [Fintype ฮน] (f : ContinuousMultilinearMap ๐•œ E F) [DecidableEq ฮน] {G : Type u_4} [NormedAddCommGroup G] [NormedSpace ๐•œ G] {g : (i : ฮน) โ†’ G โ†’ E i} {g' : (i : ฮน) โ†’ G โ†’L[๐•œ] E i} {x : G} (hg : โˆ€ (i : ฮน), HasFDerivAt (g i) (g' i) x) :
HasFDerivAt (fun (x : G) => f fun (i : ฮน) => g i x) (โˆ‘ i : ฮน, (f.toContinuousLinearMap (fun (j : ฮน) => g j x) i).comp (g' i)) x

Given f a multilinear map, then the derivative of x โ†ฆ f (gโ‚ x, ..., gโ‚™ x) at x applied to a vector v is given by โˆ‘ i, f (gโ‚ x, ..., g'แตข v, ..., gโ‚™ x).

theorem ContinuousMultilinearMap.hasFTaylorSeriesUpTo_iteratedFDeriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {E : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] [Fintype ฮน] (f : ContinuousMultilinearMap ๐•œ E F) :
HasFTaylorSeriesUpTo โŠค โ‡‘f fun (v : (i : ฮน) โ†’ E i) (n : โ„•) => f.iteratedFDeriv n v

A continuous multilinear function f admits a Taylor series, whose successive terms are given by f.iteratedFDeriv n. This is the point of the definition of f.iteratedFDeriv.

theorem ContinuousMultilinearMap.iteratedFDeriv_eq {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {E : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] [Fintype ฮน] (f : ContinuousMultilinearMap ๐•œ E F) (n : โ„•) :
iteratedFDeriv ๐•œ n โ‡‘f = f.iteratedFDeriv n
theorem ContinuousMultilinearMap.norm_iteratedFDeriv_le {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {E : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] [Fintype ฮน] (f : ContinuousMultilinearMap ๐•œ E F) (n : โ„•) (x : (i : ฮน) โ†’ E i) :
โ€–iteratedFDeriv ๐•œ n (โ‡‘f) xโ€– โ‰ค โ†‘((Fintype.card ฮน).descFactorial n) * โ€–fโ€– * โ€–xโ€– ^ (Fintype.card ฮน - n)
theorem ContinuousMultilinearMap.cPolynomialAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {E : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] [Fintype ฮน] (f : ContinuousMultilinearMap ๐•œ E F) (x : (i : ฮน) โ†’ E i) :
CPolynomialAt ๐•œ (โ‡‘f) x
theorem ContinuousMultilinearMap.cPolyomialOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {E : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] [Fintype ฮน] (f : ContinuousMultilinearMap ๐•œ E F) :
CPolynomialOn ๐•œ โ‡‘f โŠค
theorem FormalMultilinearSeries.derivSeries_apply_diag {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] (p : FormalMultilinearSeries ๐•œ E F) (n : โ„•) (x : E) :
((p.derivSeries n) fun (x_1 : Fin n) => x) x = (n + 1) โ€ข (p (n + 1)) fun (x_1 : Fin (n + 1)) => x
theorem HasFPowerSeriesOnBall.iteratedFDeriv_zero_apply_diag {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {f : E โ†’ F} {x : E} {r : ENNReal} (h : HasFPowerSeriesOnBall f p x r) :
iteratedFDeriv ๐•œ 0 f x = p 0
theorem HasFPowerSeriesOnBall.factorial_smul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {f : E โ†’ F} {x : E} {r : ENNReal} (h : HasFPowerSeriesOnBall f p x r) (y : E) [CompleteSpace F] (n : โ„•) :
(n.factorial โ€ข (p n) fun (x : Fin n) => y) = (iteratedFDeriv ๐•œ n f x) fun (x : Fin n) => y
theorem HasFPowerSeriesOnBall.hasSum_iteratedFDeriv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {p : FormalMultilinearSeries ๐•œ E F} {f : E โ†’ F} {x : E} {r : ENNReal} (h : HasFPowerSeriesOnBall f p x r) [CompleteSpace F] [CharZero ๐•œ] {y : E} (hy : y โˆˆ EMetric.ball 0 r) :
HasSum (fun (n : โ„•) => (โ†‘n.factorial)โปยน โ€ข (iteratedFDeriv ๐•œ n f x) fun (x : Fin n) => y) (f (x + y))

Derivative of a linear map into multilinear maps #

theorem ContinuousLinearMap.hasFDerivAt_uncurry_of_multilinear {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {G : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (G i)] [Fintype ฮน] [DecidableEq ฮน] (f : E โ†’L[๐•œ] ContinuousMultilinearMap ๐•œ G F) (v : E ร— ((i : ฮน) โ†’ G i)) :
HasFDerivAt (fun (p : E ร— ((i : ฮน) โ†’ G i)) => (f p.1) p.2) ((f.flipMultilinear v.2).comp (ContinuousLinearMap.fst ๐•œ E ((i : ฮน) โ†’ G i)) + โˆ‘ i : ฮน, ((f v.1).toContinuousLinearMap v.2 i).comp ((ContinuousLinearMap.proj i).comp (ContinuousLinearMap.snd ๐•œ E ((i : ฮน) โ†’ G i)))) v
theorem HasFDerivWithinAt.linear_multilinear_comp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {G : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (G i)] [Fintype ฮน] {H : Type u_4} [NormedAddCommGroup H] [NormedSpace ๐•œ H] [DecidableEq ฮน] {a : H โ†’ E} {a' : H โ†’L[๐•œ] E} {b : (i : ฮน) โ†’ H โ†’ G i} {b' : (i : ฮน) โ†’ H โ†’L[๐•œ] G i} {s : Set H} {x : H} (ha : HasFDerivWithinAt a a' s x) (hb : โˆ€ (i : ฮน), HasFDerivWithinAt (b i) (b' i) s x) (f : E โ†’L[๐•œ] ContinuousMultilinearMap ๐•œ G F) :
HasFDerivWithinAt (fun (y : H) => (f (a y)) fun (i : ฮน) => b i y) ((f.flipMultilinear fun (i : ฮน) => b i x).comp a' + โˆ‘ i : ฮน, ((f (a x)).toContinuousLinearMap (fun (j : ฮน) => b j x) i).comp (b' i)) s x

Given f a linear map into multilinear maps, then the derivative of x โ†ฆ f (a x) (bโ‚ x, ..., bโ‚™ x) at x applied to a vector v is given by f (a' v) (bโ‚ x, ...., bโ‚™ x) + โˆ‘ i, f a (bโ‚ x, ..., b'แตข v, ..., bโ‚™ x). Version inside a set.

theorem HasFDerivAt.linear_multilinear_comp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type v} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {ฮน : Type u_2} {G : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (G i)] [Fintype ฮน] {H : Type u_4} [NormedAddCommGroup H] [NormedSpace ๐•œ H] [DecidableEq ฮน] {a : H โ†’ E} {a' : H โ†’L[๐•œ] E} {b : (i : ฮน) โ†’ H โ†’ G i} {b' : (i : ฮน) โ†’ H โ†’L[๐•œ] G i} {x : H} (ha : HasFDerivAt a a' x) (hb : โˆ€ (i : ฮน), HasFDerivAt (b i) (b' i) x) (f : E โ†’L[๐•œ] ContinuousMultilinearMap ๐•œ G F) :
HasFDerivAt (fun (y : H) => (f (a y)) fun (i : ฮน) => b i y) ((f.flipMultilinear fun (i : ฮน) => b i x).comp a' + โˆ‘ i : ฮน, ((f (a x)).toContinuousLinearMap (fun (j : ฮน) => b j x) i).comp (b' i)) x

Given f a linear map into multilinear maps, then the derivative of x โ†ฆ f (a x) (bโ‚ x, ..., bโ‚™ x) at x applied to a vector v is given by f (a' v) (bโ‚ x, ...., bโ‚™ x) + โˆ‘ i, f a (bโ‚ x, ..., b'แตข v, ..., bโ‚™ x).