Documentation

Mathlib.Analysis.Calculus.ContDiff.Defs

Higher differentiability #

A function is C^1 on a domain if it is differentiable there, and its derivative is continuous. By induction, it is C^n if it is C^{n-1} and its (n-1)-th derivative is C^1 there or, equivalently, if it is C^1 and its derivative is C^{n-1}. Finally, it is C^∞ if it is C^n for all n.

We formalize these notions with predicates ContDiffWithinAt, ContDiffAt, ContDiffOn and ContDiff saying that the function is C^n within a set at a point, at a point, on a set and on the whole space respectively.

To avoid the issue of choice when choosing a derivative in sets where the derivative is not necessarily unique, ContDiffOn is not defined directly in terms of the regularity of the specific choice iteratedFDerivWithin 𝕜 n f s inside s, but in terms of the existence of a nice sequence of derivatives, expressed with a predicate HasFTaylorSeriesUpToOn defined in the file FTaylorSeries.

We prove basic properties of these notions.

Main definitions and results #

Let f : E → F be a map between normed vector spaces over a nontrivially normed field 𝕜.

In sets of unique differentiability, ContDiffOn 𝕜 n f s can be expressed in terms of the properties of iteratedFDerivWithin 𝕜 m f s for m ≤ n. In the whole space, ContDiff 𝕜 n f can be expressed in terms of the properties of iteratedFDeriv 𝕜 m f for m ≤ n.

Implementation notes #

The definitions in this file are designed to work on any field 𝕜. They are sometimes slightly more complicated than the naive definitions one would guess from the intuition over the real or complex numbers, but they are designed to circumvent the lack of gluing properties and partitions of unity in general. In the usual situations, they coincide with the usual definitions.

Definition of C^n functions in domains #

One could define C^n functions in a domain s by fixing an arbitrary choice of derivatives (this is what we do with iteratedFDerivWithin) and requiring that all these derivatives up to n are continuous. If the derivative is not unique, this could lead to strange behavior like two C^n functions f and g on s whose sum is not C^n. A better definition is thus to say that a function is C^n inside s if it admits a sequence of derivatives up to n inside s.

This definition still has the problem that a function which is locally C^n would not need to be C^n, as different choices of sequences of derivatives around different points might possibly not be glued together to give a globally defined sequence of derivatives. (Note that this issue can not happen over reals, thanks to partition of unity, but the behavior over a general field is not so clear, and we want a definition for general fields). Also, there are locality problems for the order parameter: one could image a function which, for each n, has a nice sequence of derivatives up to order n, but they do not coincide for varying n and can therefore not be glued to give rise to an infinite sequence of derivatives. This would give a function which is C^n for all n, but not C^∞. We solve this issue by putting locality conditions in space and order in our definition of ContDiffWithinAt and ContDiffOn. The resulting definition is slightly more complicated to work with (in fact not so much), but it gives rise to completely satisfactory theorems.

For instance, with this definition, a real function which is C^m (but not better) on (-1/m, 1/m) for each natural m is by definition C^∞ at 0.

There is another issue with the definition of ContDiffWithinAt 𝕜 n f s x. We can require the existence and good behavior of derivatives up to order n on a neighborhood of x within s. However, this does not imply continuity or differentiability within s of the function at x when x does not belong to s. Therefore, we require such existence and good behavior on a neighborhood of x within s ∪ {x} (which appears as insert x s in this file).

Notations #

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 ⊤ : ℕ∞ with .

Tags #

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

Smoothness exponent for analytic functions. Not implemented yet, ω smoothness is equivalent to smoothness in current mathlib.

Equations
Instances For

    Pretty printer defined by notation3 command.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Pretty printer defined by notation3 command.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Smoothness exponent for infinitely differentiable functions.

        Equations
        Instances For

          Smooth functions within a set around a point #

          def ContDiffWithinAt (𝕜 : Type u) [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (n : WithTop ℕ∞) (f : EF) (s : Set E) (x : E) :

          A function is continuously differentiable up to order n within a set s at a point x if it admits continuous derivatives up to order n in a neighborhood of x in s ∪ {x}. For n = ∞, we only require that this holds up to any finite order (where the neighborhood may depend on the finite order we consider).

          For instance, a real function which is C^m on (-1/m, 1/m) for each natural m, but not better, is C^∞ at 0 within univ.

          We take the exponent n in WithTop ℕ∞ to allow for an extension to analytic functions in the future, but currently the notion is the same for n = ∞ and n = ω.

          Equations
          Instances For
            theorem contDiffWithinAt_nat {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : } :
            ContDiffWithinAt 𝕜 (↑n) f s x unhdsWithin x (insert x s), ∃ (p : EFormalMultilinearSeries 𝕜 E F), HasFTaylorSeriesUpToOn (↑n) f p u
            theorem ContDiffWithinAt.of_le {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {m n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (hmn : m n) :
            ContDiffWithinAt 𝕜 m f s x
            theorem contDiffWithinAt_iff_forall_nat_le {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : ℕ∞} :
            ContDiffWithinAt 𝕜 (↑n) f s x ∀ (m : ), m nContDiffWithinAt 𝕜 (↑m) f s x
            theorem contDiffWithinAt_top {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} :
            ContDiffWithinAt 𝕜 (↑) f s x ∀ (n : ), ContDiffWithinAt 𝕜 (↑n) f s x
            theorem ContDiffWithinAt.continuousWithinAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) :
            theorem ContDiffWithinAt.congr_of_eventuallyEq {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (h₁ : f₁ =ᶠ[nhdsWithin x s] f) (hx : f₁ x = f x) :
            ContDiffWithinAt 𝕜 n f₁ s x
            theorem Filter.EventuallyEq.congr_contDiffWithinAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h₁ : f₁ =ᶠ[nhdsWithin x s] f) (hx : f₁ x = f x) :
            ContDiffWithinAt 𝕜 n f₁ s x ContDiffWithinAt 𝕜 n f s x
            @[deprecated Filter.EventuallyEq.congr_contDiffWithinAt]
            theorem Filter.EventuallyEq.contDiffWithinAt_iff {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h₁ : f₁ =ᶠ[nhdsWithin x s] f) (hx : f₁ x = f x) :
            ContDiffWithinAt 𝕜 n f₁ s x ContDiffWithinAt 𝕜 n f s x

            Alias of Filter.EventuallyEq.congr_contDiffWithinAt.

            theorem ContDiffWithinAt.congr_of_eventuallyEq_insert {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (h₁ : f₁ =ᶠ[nhdsWithin x (insert x s)] f) :
            ContDiffWithinAt 𝕜 n f₁ s x
            theorem Filter.EventuallyEq.congr_contDiffWithinAt_of_insert {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h₁ : f₁ =ᶠ[nhdsWithin x (insert x s)] f) :
            ContDiffWithinAt 𝕜 n f₁ s x ContDiffWithinAt 𝕜 n f s x
            theorem ContDiffWithinAt.congr_of_eventuallyEq_of_mem {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (h₁ : f₁ =ᶠ[nhdsWithin x s] f) (hx : x s) :
            ContDiffWithinAt 𝕜 n f₁ s x
            @[deprecated ContDiffWithinAt.congr_of_eventuallyEq_of_mem]
            theorem ContDiffWithinAt.congr_of_eventually_eq' {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (h₁ : f₁ =ᶠ[nhdsWithin x s] f) (hx : x s) :
            ContDiffWithinAt 𝕜 n f₁ s x

            Alias of ContDiffWithinAt.congr_of_eventuallyEq_of_mem.

            theorem Filter.EventuallyEq.congr_contDiffWithinAt_of_mem {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h₁ : f₁ =ᶠ[nhdsWithin x s] f) (hx : x s) :
            ContDiffWithinAt 𝕜 n f₁ s x ContDiffWithinAt 𝕜 n f s x
            theorem ContDiffWithinAt.congr {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (h₁ : ys, f₁ y = f y) (hx : f₁ x = f x) :
            ContDiffWithinAt 𝕜 n f₁ s x
            theorem contDiffWithinAt_congr {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h₁ : ys, f₁ y = f y) (hx : f₁ x = f x) :
            ContDiffWithinAt 𝕜 n f₁ s x ContDiffWithinAt 𝕜 n f s x
            theorem ContDiffWithinAt.congr_of_mem {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (h₁ : ys, f₁ y = f y) (hx : x s) :
            ContDiffWithinAt 𝕜 n f₁ s x
            @[deprecated ContDiffWithinAt.congr_of_mem]
            theorem ContDiffWithinAt.congr' {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (h₁ : ys, f₁ y = f y) (hx : x s) :
            ContDiffWithinAt 𝕜 n f₁ s x

            Alias of ContDiffWithinAt.congr_of_mem.

            theorem contDiffWithinAt_congr_of_mem {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h₁ : ys, f₁ y = f y) (hx : x s) :
            ContDiffWithinAt 𝕜 n f₁ s x ContDiffWithinAt 𝕜 n f s x
            theorem ContDiffWithinAt.congr_of_insert {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (h₁ : yinsert x s, f₁ y = f y) :
            ContDiffWithinAt 𝕜 n f₁ s x
            theorem contDiffWithinAt_congr_of_insert {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h₁ : yinsert x s, f₁ y = f y) :
            ContDiffWithinAt 𝕜 n f₁ s x ContDiffWithinAt 𝕜 n f s x
            theorem ContDiffWithinAt.mono_of_mem_nhdsWithin {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) {t : Set E} (hst : s nhdsWithin x t) :
            ContDiffWithinAt 𝕜 n f t x
            @[deprecated ContDiffWithinAt.mono_of_mem_nhdsWithin]
            theorem ContDiffWithinAt.mono_of_mem {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) {t : Set E} (hst : s nhdsWithin x t) :
            ContDiffWithinAt 𝕜 n f t x

            Alias of ContDiffWithinAt.mono_of_mem_nhdsWithin.

            theorem ContDiffWithinAt.mono {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) {t : Set E} (hst : t s) :
            ContDiffWithinAt 𝕜 n f t x
            theorem ContDiffWithinAt.congr_mono {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s s₁ : Set E} {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (h' : Set.EqOn f₁ f s₁) (h₁ : s₁ s) (hx : f₁ x = f x) :
            ContDiffWithinAt 𝕜 n f₁ s₁ x
            theorem ContDiffWithinAt.congr_set {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) {t : Set E} (hst : s =ᶠ[nhds x] t) :
            ContDiffWithinAt 𝕜 n f t x
            @[deprecated ContDiffWithinAt.congr_set]
            theorem ContDiffWithinAt.congr_nhds {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) {t : Set E} (hst : s =ᶠ[nhds x] t) :
            ContDiffWithinAt 𝕜 n f t x

            Alias of ContDiffWithinAt.congr_set.

            theorem contDiffWithinAt_congr_set {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} {t : Set E} (hst : s =ᶠ[nhds x] t) :
            ContDiffWithinAt 𝕜 n f s x ContDiffWithinAt 𝕜 n f t x
            @[deprecated contDiffWithinAt_congr_set]
            theorem contDiffWithinAt_congr_nhds {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} {t : Set E} (hst : s =ᶠ[nhds x] t) :
            ContDiffWithinAt 𝕜 n f s x ContDiffWithinAt 𝕜 n f t x

            Alias of contDiffWithinAt_congr_set.

            theorem contDiffWithinAt_inter' {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s t : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : t nhdsWithin x s) :
            ContDiffWithinAt 𝕜 n f (s t) x ContDiffWithinAt 𝕜 n f s x
            theorem contDiffWithinAt_inter {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s t : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : t nhds x) :
            ContDiffWithinAt 𝕜 n f (s t) x ContDiffWithinAt 𝕜 n f s x
            theorem contDiffWithinAt_insert_self {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} :
            ContDiffWithinAt 𝕜 n f (insert x s) x ContDiffWithinAt 𝕜 n f s x
            theorem contDiffWithinAt_insert {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} {y : E} :
            ContDiffWithinAt 𝕜 n f (insert y s) x ContDiffWithinAt 𝕜 n f s x
            theorem ContDiffWithinAt.of_insert {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} {y : E} :
            ContDiffWithinAt 𝕜 n f (insert y s) xContDiffWithinAt 𝕜 n f s x

            Alias of the forward direction of contDiffWithinAt_insert.

            theorem ContDiffWithinAt.insert' {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} {y : E} :
            ContDiffWithinAt 𝕜 n f s xContDiffWithinAt 𝕜 n f (insert y s) x

            Alias of the reverse direction of contDiffWithinAt_insert.

            theorem ContDiffWithinAt.insert {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) :
            ContDiffWithinAt 𝕜 n f (insert x s) x
            theorem contDiffWithinAt_diff_singleton {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} {y : E} :
            ContDiffWithinAt 𝕜 n f (s \ {y}) x ContDiffWithinAt 𝕜 n f s x
            theorem ContDiffWithinAt.differentiableWithinAt' {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (hn : 1 n) :

            If a function is C^n within a set at a point, with n ≥ 1, then it is differentiable within this set at this point.

            @[deprecated ContDiffWithinAt.differentiableWithinAt']
            theorem ContDiffWithinAt.differentiable_within_at' {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (hn : 1 n) :

            Alias of ContDiffWithinAt.differentiableWithinAt'.


            If a function is C^n within a set at a point, with n ≥ 1, then it is differentiable within this set at this point.

            theorem ContDiffWithinAt.differentiableWithinAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (hn : 1 n) :
            theorem contDiffWithinAt_succ_iff_hasFDerivWithinAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : } :
            ContDiffWithinAt 𝕜 (n + 1) f s x unhdsWithin x (insert x s), ∃ (f' : EE →L[𝕜] F), (∀ xu, HasFDerivWithinAt f (f' x) u x) ContDiffWithinAt 𝕜 (↑n) f' u x

            A function is C^(n + 1) on a domain iff locally, it has a derivative which is C^n.

            theorem contDiffWithinAt_succ_iff_hasFDerivWithinAt' {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : } :
            ContDiffWithinAt 𝕜 (n + 1) f s x unhdsWithin x (insert x s), u insert x s ∃ (f' : EE →L[𝕜] F), (∀ xu, HasFDerivWithinAt f (f' x) s x) ContDiffWithinAt 𝕜 (↑n) f' s x

            A version of contDiffWithinAt_succ_iff_hasFDerivWithinAt where all derivatives are taken within the same set.

            Smooth functions within a set #

            def ContDiffOn (𝕜 : Type u) [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (n : WithTop ℕ∞) (f : EF) (s : Set E) :

            A function is continuously differentiable up to n on s if, for any point x in s, it admits continuous derivatives up to order n on a neighborhood of x in s.

            For n = ∞, we only require that this holds up to any finite order (where the neighborhood may depend on the finite order we consider).

            Equations
            Instances For
              theorem HasFTaylorSeriesUpToOn.contDiffOn {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} {f' : EFormalMultilinearSeries 𝕜 E F} (hf : HasFTaylorSeriesUpToOn n f f' s) :
              ContDiffOn 𝕜 n f s
              theorem ContDiffOn.contDiffWithinAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffOn 𝕜 n f s) (hx : x s) :
              ContDiffWithinAt 𝕜 n f s x
              theorem ContDiffWithinAt.contDiffOn' {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} {m : } (hm : m n) (h : ContDiffWithinAt 𝕜 n f s x) :
              ∃ (u : Set E), IsOpen u x u ContDiffOn 𝕜 (↑m) f (insert x s u)
              theorem ContDiffWithinAt.contDiffOn {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} {m : } (hm : m n) (h : ContDiffWithinAt 𝕜 n f s x) :
              unhdsWithin x (insert x s), u insert x s ContDiffOn 𝕜 (↑m) f u
              theorem contDiffWithinAt_iff_contDiffOn_nhds {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : } :
              ContDiffWithinAt 𝕜 (↑n) f s x unhdsWithin x (insert x s), ContDiffOn 𝕜 (↑n) f u

              A function is C^n within a set at a point, for n : ℕ, if and only if it is C^n on a neighborhood of this point.

              theorem ContDiffWithinAt.eventually {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : } (h : ContDiffWithinAt 𝕜 (↑n) f s x) :
              ∀ᶠ (y : E) in nhdsWithin x (insert x s), ContDiffWithinAt 𝕜 (↑n) f s y
              theorem ContDiffOn.of_le {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {m n : WithTop ℕ∞} (h : ContDiffOn 𝕜 n f s) (hmn : m n) :
              ContDiffOn 𝕜 m f s
              theorem ContDiffOn.of_succ {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : } (h : ContDiffOn 𝕜 (n + 1) f s) :
              ContDiffOn 𝕜 (↑n) f s
              theorem ContDiffOn.one_of_succ {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : } (h : ContDiffOn 𝕜 (n + 1) f s) :
              ContDiffOn 𝕜 1 f s
              theorem contDiffOn_iff_forall_nat_le {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : ℕ∞} :
              ContDiffOn 𝕜 (↑n) f s ∀ (m : ), m nContDiffOn 𝕜 (↑m) f s
              theorem contDiffOn_top {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} :
              ContDiffOn 𝕜 (↑) f s ∀ (n : ), ContDiffOn 𝕜 (↑n) f s
              theorem contDiffOn_all_iff_nat {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} :
              (∀ (n : ℕ∞), ContDiffOn 𝕜 (↑n) f s) ∀ (n : ), ContDiffOn 𝕜 (↑n) f s
              theorem ContDiffOn.continuousOn {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} (h : ContDiffOn 𝕜 n f s) :
              theorem ContDiffOn.congr {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {n : WithTop ℕ∞} (h : ContDiffOn 𝕜 n f s) (h₁ : xs, f₁ x = f x) :
              ContDiffOn 𝕜 n f₁ s
              theorem contDiffOn_congr {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f f₁ : EF} {n : WithTop ℕ∞} (h₁ : xs, f₁ x = f x) :
              ContDiffOn 𝕜 n f₁ s ContDiffOn 𝕜 n f s
              theorem ContDiffOn.mono {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} (h : ContDiffOn 𝕜 n f s) {t : Set E} (hst : t s) :
              ContDiffOn 𝕜 n f t
              theorem ContDiffOn.congr_mono {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s s₁ : Set E} {f f₁ : EF} {n : WithTop ℕ∞} (hf : ContDiffOn 𝕜 n f s) (h₁ : xs₁, f₁ x = f x) (hs : s₁ s) :
              ContDiffOn 𝕜 n f₁ s₁
              theorem ContDiffOn.differentiableOn {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} (h : ContDiffOn 𝕜 n f s) (hn : 1 n) :

              If a function is C^n on a set with n ≥ 1, then it is differentiable there.

              theorem contDiffOn_of_locally_contDiffOn {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} (h : xs, ∃ (u : Set E), IsOpen u x u ContDiffOn 𝕜 n f (s u)) :
              ContDiffOn 𝕜 n f s

              If a function is C^n around each point in a set, then it is C^n on the set.

              theorem contDiffOn_succ_iff_hasFDerivWithinAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : } :
              ContDiffOn 𝕜 (n + 1) f s xs, unhdsWithin x (insert x s), ∃ (f' : EE →L[𝕜] F), (∀ xu, HasFDerivWithinAt f (f' x) u x) ContDiffOn 𝕜 (↑n) f' u

              A function is C^(n + 1) on a domain iff locally, it has a derivative which is C^n.

              @[simp]
              theorem contDiffOn_zero {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} :
              ContDiffOn 𝕜 0 f s ContinuousOn f s
              theorem contDiffWithinAt_zero {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} (hx : x s) :
              ContDiffWithinAt 𝕜 0 f s x unhdsWithin x s, ContinuousOn f (s u)
              theorem ContDiffOn.ftaylorSeriesWithin {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} (h : ContDiffOn 𝕜 n f s) (hs : UniqueDiffOn 𝕜 s) :

              When a function is C^n in a set s of unique differentiability, it admits ftaylorSeriesWithin 𝕜 f s as a Taylor series up to order n in s.

              theorem contDiffOn_of_continuousOn_differentiableOn {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : ℕ∞} (Hcont : ∀ (m : ), m nContinuousOn (fun (x : E) => iteratedFDerivWithin 𝕜 m f s x) s) (Hdiff : ∀ (m : ), m < nDifferentiableOn 𝕜 (fun (x : E) => iteratedFDerivWithin 𝕜 m f s x) s) :
              ContDiffOn 𝕜 (↑n) f s
              theorem contDiffOn_of_differentiableOn {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : ℕ∞} (h : ∀ (m : ), m nDifferentiableOn 𝕜 (iteratedFDerivWithin 𝕜 m f s) s) :
              ContDiffOn 𝕜 (↑n) f s
              theorem ContDiffOn.continuousOn_iteratedFDerivWithin {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} {m : } (h : ContDiffOn 𝕜 n f s) (hmn : m n) (hs : UniqueDiffOn 𝕜 s) :
              theorem ContDiffOn.differentiableOn_iteratedFDerivWithin {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} {m : } (h : ContDiffOn 𝕜 n f s) (hmn : m < n) (hs : UniqueDiffOn 𝕜 s) :
              theorem ContDiffWithinAt.differentiableWithinAt_iteratedFDerivWithin {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} {m : } (h : ContDiffWithinAt 𝕜 n f s x) (hmn : m < n) (hs : UniqueDiffOn 𝕜 (insert x s)) :
              theorem contDiffOn_iff_continuousOn_differentiableOn {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : ℕ∞} (hs : UniqueDiffOn 𝕜 s) :
              ContDiffOn 𝕜 (↑n) f s (∀ (m : ), m nContinuousOn (fun (x : E) => iteratedFDerivWithin 𝕜 m f s x) s) ∀ (m : ), m < nDifferentiableOn 𝕜 (fun (x : E) => iteratedFDerivWithin 𝕜 m f s x) s
              theorem contDiffOn_succ_of_fderivWithin {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : } (hf : DifferentiableOn 𝕜 f s) (h : ContDiffOn 𝕜 (↑n) (fun (y : E) => fderivWithin 𝕜 f s y) s) :
              ContDiffOn 𝕜 (n + 1) f s
              theorem contDiffOn_succ_iff_fderivWithin {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : } (hs : UniqueDiffOn 𝕜 s) :
              ContDiffOn 𝕜 (n + 1) f s DifferentiableOn 𝕜 f s ContDiffOn 𝕜 (↑n) (fun (y : E) => fderivWithin 𝕜 f s y) s

              A function is C^(n + 1) on a domain with unique derivatives if and only if it is differentiable there, and its derivative (expressed with fderivWithin) is C^n.

              theorem contDiffOn_succ_iff_hasFDerivWithin {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : } (hs : UniqueDiffOn 𝕜 s) :
              ContDiffOn 𝕜 (n + 1) f s ∃ (f' : EE →L[𝕜] F), ContDiffOn 𝕜 (↑n) f' s xs, HasFDerivWithinAt f (f' x) s x
              theorem contDiffOn_succ_iff_fderiv_of_isOpen {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : } (hs : IsOpen s) :
              ContDiffOn 𝕜 (n + 1) f s DifferentiableOn 𝕜 f s ContDiffOn 𝕜 (↑n) (fun (y : E) => fderiv 𝕜 f y) s

              A function is C^(n + 1) on an open domain if and only if it is differentiable there, and its derivative (expressed with fderiv) is C^n.

              theorem contDiffOn_top_iff_fderivWithin {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} (hs : UniqueDiffOn 𝕜 s) :
              ContDiffOn 𝕜 (↑) f s DifferentiableOn 𝕜 f s ContDiffOn 𝕜 (↑) (fun (y : E) => fderivWithin 𝕜 f s y) s

              A function is C^∞ on a domain with unique derivatives if and only if it is differentiable there, and its derivative (expressed with fderivWithin) is C^∞.

              theorem contDiffOn_top_iff_fderiv_of_isOpen {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} (hs : IsOpen s) :
              ContDiffOn 𝕜 (↑) f s DifferentiableOn 𝕜 f s ContDiffOn 𝕜 (↑) (fun (y : E) => fderiv 𝕜 f y) s

              A function is C^∞ on an open domain if and only if it is differentiable there, and its derivative (expressed with fderiv) is C^∞.

              theorem ContDiffOn.fderivWithin {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {m n : WithTop ℕ∞} (hf : ContDiffOn 𝕜 n f s) (hs : UniqueDiffOn 𝕜 s) (hmn : m + 1 n) :
              ContDiffOn 𝕜 m (fun (y : E) => fderivWithin 𝕜 f s y) s
              theorem ContDiffOn.fderiv_of_isOpen {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {m n : WithTop ℕ∞} (hf : ContDiffOn 𝕜 n f s) (hs : IsOpen s) (hmn : m + 1 n) :
              ContDiffOn 𝕜 m (fun (y : E) => fderiv 𝕜 f y) s
              theorem ContDiffOn.continuousOn_fderivWithin {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} (h : ContDiffOn 𝕜 n f s) (hs : UniqueDiffOn 𝕜 s) (hn : 1 n) :
              ContinuousOn (fun (x : E) => fderivWithin 𝕜 f s x) s
              theorem ContDiffOn.continuousOn_fderiv_of_isOpen {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} (h : ContDiffOn 𝕜 n f s) (hs : IsOpen s) (hn : 1 n) :
              ContinuousOn (fun (x : E) => fderiv 𝕜 f x) s
              theorem contDiffOn_infty_iff_contDiffOn_omega {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} :
              ContDiffOn 𝕜 (↑) f s ContDiffOn 𝕜 f s

              The following lemma will be removed when the definition of C^ω will be corrected. For now, it is only there as a convenient shortcut.

              Smooth functions at a point #

              def ContDiffAt (𝕜 : Type u) [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (n : WithTop ℕ∞) (f : EF) (x : E) :

              A function is continuously differentiable up to n at a point x if, for any integer k ≤ n, there is a neighborhood of x where f admits derivatives up to order n, which are continuous.

              Equations
              Instances For
                theorem contDiffWithinAt_univ {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} {n : WithTop ℕ∞} :
                ContDiffWithinAt 𝕜 n f Set.univ x ContDiffAt 𝕜 n f x
                theorem contDiffAt_top {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} :
                ContDiffAt 𝕜 (↑) f x ∀ (n : ), ContDiffAt 𝕜 (↑n) f x
                theorem ContDiffAt.contDiffWithinAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffAt 𝕜 n f x) :
                ContDiffWithinAt 𝕜 n f s x
                theorem ContDiffWithinAt.contDiffAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffWithinAt 𝕜 n f s x) (hx : s nhds x) :
                ContDiffAt 𝕜 n f x
                theorem contDiffWithinAt_iff_contDiffAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : s nhds x) :
                ContDiffWithinAt 𝕜 n f s x ContDiffAt 𝕜 n f x
                theorem IsOpen.contDiffOn_iff {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} (hs : IsOpen s) :
                ContDiffOn 𝕜 n f s ∀ ⦃a : E⦄, a sContDiffAt 𝕜 n f a
                theorem ContDiffOn.contDiffAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffOn 𝕜 n f s) (hx : s nhds x) :
                ContDiffAt 𝕜 n f x
                theorem ContDiffAt.congr_of_eventuallyEq {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f f₁ : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffAt 𝕜 n f x) (hg : f₁ =ᶠ[nhds x] f) :
                ContDiffAt 𝕜 n f₁ x
                theorem ContDiffAt.of_le {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} {m n : WithTop ℕ∞} (h : ContDiffAt 𝕜 n f x) (hmn : m n) :
                ContDiffAt 𝕜 m f x
                theorem ContDiffAt.continuousAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffAt 𝕜 n f x) :
                @[simp]
                theorem contDiffWithinAt_compl_self {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} {n : WithTop ℕ∞} :
                ContDiffWithinAt 𝕜 n f {x} x ContDiffAt 𝕜 n f x
                theorem ContDiffAt.differentiableAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiffAt 𝕜 n f x) (hn : 1 n) :

                If a function is C^n with n ≥ 1 at a point, then it is differentiable there.

                theorem ContDiffAt.contDiffOn {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} {n : WithTop ℕ∞} {m : } (h : ContDiffAt 𝕜 n f x) (hm : m n) :
                unhds x, ContDiffOn 𝕜 (↑m) f u
                theorem contDiffAt_succ_iff_hasFDerivAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} {n : } :
                ContDiffAt 𝕜 (n + 1) f x ∃ (f' : EE →L[𝕜] F), (∃ unhds x, xu, HasFDerivAt f (f' x) x) ContDiffAt 𝕜 (↑n) f' x

                A function is C^(n + 1) at a point iff locally, it has a derivative which is C^n.

                theorem ContDiffAt.eventually {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} {n : } (h : ContDiffAt 𝕜 (↑n) f x) :
                ∀ᶠ (y : E) in nhds x, ContDiffAt 𝕜 (↑n) f y

                Smooth functions #

                def ContDiff (𝕜 : Type u) [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (n : WithTop ℕ∞) (f : EF) :

                A function is continuously differentiable up to n if it admits derivatives up to order n, which are continuous. Contrary to the case of definitions in domains (where derivatives might not be unique) we do not need to localize the definition in space or time.

                Equations
                Instances For
                  theorem HasFTaylorSeriesUpTo.contDiff {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : WithTop ℕ∞} {f' : EFormalMultilinearSeries 𝕜 E F} (hf : HasFTaylorSeriesUpTo n f f') :
                  ContDiff 𝕜 n f

                  If f has a Taylor series up to n, then it is C^n.

                  theorem contDiffOn_univ {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : WithTop ℕ∞} :
                  ContDiffOn 𝕜 n f Set.univ ContDiff 𝕜 n f
                  theorem contDiff_iff_contDiffAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : WithTop ℕ∞} :
                  ContDiff 𝕜 n f ∀ (x : E), ContDiffAt 𝕜 n f x
                  theorem ContDiff.contDiffAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiff 𝕜 n f) :
                  ContDiffAt 𝕜 n f x
                  theorem ContDiff.contDiffWithinAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {x : E} {n : WithTop ℕ∞} (h : ContDiff 𝕜 n f) :
                  ContDiffWithinAt 𝕜 n f s x
                  theorem contDiff_infty_iff_contDiff_omega {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} :
                  ContDiff 𝕜 (↑) f ContDiff 𝕜 f

                  The following lemma will be removed when the definition of C^ω will be corrected. For now, it is only there as a convenient shortcut.

                  theorem contDiff_top {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} :
                  ContDiff 𝕜 (↑) f ∀ (n : ), ContDiff 𝕜 (↑n) f
                  theorem contDiff_all_iff_nat {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} :
                  (∀ (n : ℕ∞), ContDiff 𝕜 (↑n) f) ∀ (n : ), ContDiff 𝕜 (↑n) f
                  theorem ContDiff.contDiffOn {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {f : EF} {n : WithTop ℕ∞} (h : ContDiff 𝕜 n f) :
                  ContDiffOn 𝕜 n f s
                  @[simp]
                  theorem contDiff_zero {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} :
                  theorem contDiffAt_zero {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} :
                  ContDiffAt 𝕜 0 f x unhds x, ContinuousOn f u
                  theorem contDiffAt_one_iff {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {x : E} :
                  ContDiffAt 𝕜 1 f x ∃ (f' : EE →L[𝕜] F), unhds x, ContinuousOn f' u xu, HasFDerivAt f (f' x) x
                  theorem ContDiff.of_le {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {m n : WithTop ℕ∞} (h : ContDiff 𝕜 n f) (hmn : m n) :
                  ContDiff 𝕜 m f
                  theorem ContDiff.of_succ {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : } (h : ContDiff 𝕜 (n + 1) f) :
                  ContDiff 𝕜 (↑n) f
                  theorem ContDiff.one_of_succ {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : } (h : ContDiff 𝕜 (n + 1) f) :
                  ContDiff 𝕜 1 f
                  theorem ContDiff.continuous {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : WithTop ℕ∞} (h : ContDiff 𝕜 n f) :
                  theorem ContDiff.differentiable {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : WithTop ℕ∞} (h : ContDiff 𝕜 n f) (hn : 1 n) :

                  If a function is C^n with n ≥ 1, then it is differentiable.

                  theorem contDiff_iff_forall_nat_le {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : ℕ∞} :
                  ContDiff 𝕜 (↑n) f ∀ (m : ), m nContDiff 𝕜 (↑m) f
                  theorem contDiff_succ_iff_hasFDerivAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : } :
                  ContDiff 𝕜 (n + 1) f ∃ (f' : EE →L[𝕜] F), ContDiff 𝕜 (↑n) f' ∀ (x : E), HasFDerivAt f (f' x) x

                  A function is C^(n+1) iff it has a C^n derivative.

                  theorem contDiff_one_iff_hasFDerivAt {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} :
                  ContDiff 𝕜 1 f ∃ (f' : EE →L[𝕜] F), Continuous f' ∀ (x : E), HasFDerivAt f (f' x) x
                  theorem contDiff_iff_ftaylorSeries {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : WithTop ℕ∞} :

                  When a function is C^n in a set s of unique differentiability, it admits ftaylorSeriesWithin 𝕜 f s as a Taylor series up to order n in s.

                  theorem contDiff_iff_continuous_differentiable {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : ℕ∞} :
                  ContDiff 𝕜 (↑n) f (∀ (m : ), m nContinuous fun (x : E) => iteratedFDeriv 𝕜 m f x) ∀ (m : ), m < nDifferentiable 𝕜 fun (x : E) => iteratedFDeriv 𝕜 m f x
                  theorem ContDiff.continuous_iteratedFDeriv {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : WithTop ℕ∞} {m : } (hm : m n) (hf : ContDiff 𝕜 n f) :
                  Continuous fun (x : E) => iteratedFDeriv 𝕜 m f x

                  If f is C^n then its m-times iterated derivative is continuous for m ≤ n.

                  theorem ContDiff.differentiable_iteratedFDeriv {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : WithTop ℕ∞} {m : } (hm : m < n) (hf : ContDiff 𝕜 n f) :
                  Differentiable 𝕜 fun (x : E) => iteratedFDeriv 𝕜 m f x

                  If f is C^n then its m-times iterated derivative is differentiable for m < n.

                  theorem contDiff_of_differentiable_iteratedFDeriv {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : ℕ∞} (h : ∀ (m : ), m nDifferentiable 𝕜 (iteratedFDeriv 𝕜 m f)) :
                  ContDiff 𝕜 (↑n) f
                  theorem contDiff_succ_iff_fderiv {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : } :
                  ContDiff 𝕜 (n + 1) f Differentiable 𝕜 f ContDiff 𝕜 n fun (y : E) => fderiv 𝕜 f y

                  A function is C^(n + 1) if and only if it is differentiable, and its derivative (formulated in terms of fderiv) is C^n.

                  theorem contDiff_one_iff_fderiv {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} :
                  ContDiff 𝕜 1 f Differentiable 𝕜 f Continuous (fderiv 𝕜 f)
                  theorem contDiff_top_iff_fderiv {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} :
                  ContDiff 𝕜 (↑) f Differentiable 𝕜 f ContDiff 𝕜 fun (y : E) => fderiv 𝕜 f y

                  A function is C^∞ if and only if it is differentiable, and its derivative (formulated in terms of fderiv) is C^∞.

                  theorem ContDiff.continuous_fderiv {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : WithTop ℕ∞} (h : ContDiff 𝕜 n f) (hn : 1 n) :
                  Continuous fun (x : E) => fderiv 𝕜 f x
                  theorem ContDiff.continuous_fderiv_apply {𝕜 : Type u} [NontriviallyNormedField 𝕜] {E : Type uE} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type uF} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : EF} {n : WithTop ℕ∞} (h : ContDiff 𝕜 n f) (hn : 1 n) :
                  Continuous fun (p : E × E) => (fderiv 𝕜 f p.1) p.2

                  If a function is at least C^1, its bundled derivative (mapping (x, v) to Df(x) v) is continuous.