Documentation

Mathlib.Analysis.Calculus.TangentCone

Tangent cone #

In this file, we define two predicates UniqueDiffWithinAt ๐•œ s x and UniqueDiffOn ๐•œ s ensuring that, if a function has two derivatives, then they have to coincide. As a direct definition of this fact (quantifying on all target types and all functions) would depend on universes, we use a more intrinsic definition: if all the possible tangent directions to the set s at the point x span a dense subset of the whole subset, it is easy to check that the derivative has to be unique.

Therefore, we introduce the set of all tangent directions, named tangentConeAt, and express UniqueDiffWithinAt and UniqueDiffOn in terms of it. One should however think of this definition as an implementation detail: the only reason to introduce the predicates UniqueDiffWithinAt and UniqueDiffOn is to ensure the uniqueness of the derivative. This is why their names reflect their uses, and not how they are defined.

Implementation details #

Note that this file is imported by Mathlib.Analysis.Calculus.FDeriv.Basic. Hence, derivatives are not defined yet. The property of uniqueness of the derivative is therefore proved in Mathlib.Analysis.Calculus.FDeriv.Basic, but based on the properties of the tangent cone we prove here.

def tangentConeAt (๐•œ : Type u_1) [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommMonoid E] [Module ๐•œ E] [TopologicalSpace E] (s : Set E) (x : E) :
Set E

The set of all tangent directions to the set s at the point x.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    structure UniqueDiffWithinAt (๐•œ : Type u_1) [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommMonoid E] [Module ๐•œ E] [TopologicalSpace E] (s : Set E) (x : E) :

    A property ensuring that the tangent cone to s at x spans a dense subset of the whole space. The main role of this property is to ensure that the differential within s at x is unique, hence this name. The uniqueness it asserts is proved in UniqueDiffWithinAt.eq in Mathlib.Analysis.Calculus.FDeriv.Basic. To avoid pathologies in dimension 0, we also require that x belongs to the closure of s (which is automatic when E is not 0-dimensional).

    Instances For
      theorem uniqueDiffWithinAt_iff (๐•œ : Type u_1) [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommMonoid E] [Module ๐•œ E] [TopologicalSpace E] (s : Set E) (x : E) :
      UniqueDiffWithinAt ๐•œ s x โ†” Dense โ†‘(Submodule.span ๐•œ (tangentConeAt ๐•œ s x)) โˆง x โˆˆ closure s
      @[deprecated UniqueDiffWithinAt.dense_tangentConeAt (since := "2025-04-27")]
      theorem UniqueDiffWithinAt.dense_tangentCone {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommMonoid E] [Module ๐•œ E] [TopologicalSpace E] {s : Set E} {x : E} (self : UniqueDiffWithinAt ๐•œ s x) :
      Dense โ†‘(Submodule.span ๐•œ (tangentConeAt ๐•œ s x))

      Alias of UniqueDiffWithinAt.dense_tangentConeAt.

      def UniqueDiffOn (๐•œ : Type u_1) [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommMonoid E] [Module ๐•œ E] [TopologicalSpace E] (s : Set E) :

      A property ensuring that the tangent cone to s at any of its points spans a dense subset of the whole space. The main role of this property is to ensure that the differential along s is unique, hence this name. The uniqueness it asserts is proved in UniqueDiffOn.eq in Mathlib.Analysis.Calculus.FDeriv.Basic.

      Equations
      Instances For
        theorem mem_tangentConeAt_of_pow_smul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x y : E} {s : Set E} {r : ๐•œ} (hrโ‚€ : r โ‰  0) (hr : โ€–rโ€– < 1) (hs : โˆ€แถ  (n : โ„•) in Filter.atTop, x + r ^ n โ€ข y โˆˆ s) :
        y โˆˆ tangentConeAt ๐•œ s x
        @[simp]
        theorem tangentConeAt_univ {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x : E} :
        @[deprecated tangentConeAt_univ (since := "2025-04-27")]
        theorem tangentCone_univ {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x : E} :

        Alias of tangentConeAt_univ.

        theorem tangentConeAt_mono {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x : E} {s t : Set E} (h : s โІ t) :
        tangentConeAt ๐•œ s x โІ tangentConeAt ๐•œ t x
        @[deprecated tangentConeAt_mono (since := "2025-04-27")]
        theorem tangentCone_mono {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x : E} {s t : Set E} (h : s โІ t) :
        tangentConeAt ๐•œ s x โІ tangentConeAt ๐•œ t x

        Alias of tangentConeAt_mono.

        @[simp]
        theorem tangentConeAt_closure {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s : Set E} :
        tangentConeAt ๐•œ (closure s) x = tangentConeAt ๐•œ s x
        theorem tangentConeAt.lim_zero {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {y : E} {ฮฑ : Type u_5} (l : Filter ฮฑ) {c : ฮฑ โ†’ ๐•œ} {d : ฮฑ โ†’ E} (hc : Filter.Tendsto (fun (n : ฮฑ) => โ€–c nโ€–) l Filter.atTop) (hd : Filter.Tendsto (fun (n : ฮฑ) => c n โ€ข d n) l (nhds y)) :

        Auxiliary lemma ensuring that, under the assumptions defining the tangent cone, the sequence d tends to 0 at infinity.

        theorem tangentConeAt_mono_nhds {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (h : nhdsWithin x s โ‰ค nhdsWithin x t) :
        tangentConeAt ๐•œ s x โІ tangentConeAt ๐•œ t x
        @[deprecated tangentConeAt_mono_nhds (since := "2025-04-27")]
        theorem tangentCone_mono_nhds {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (h : nhdsWithin x s โ‰ค nhdsWithin x t) :
        tangentConeAt ๐•œ s x โІ tangentConeAt ๐•œ t x

        Alias of tangentConeAt_mono_nhds.

        theorem tangentConeAt_congr {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (h : nhdsWithin x s = nhdsWithin x t) :
        tangentConeAt ๐•œ s x = tangentConeAt ๐•œ t x

        Tangent cone of s at x depends only on ๐“[s] x.

        @[deprecated tangentConeAt_congr (since := "2025-04-27")]
        theorem tangentCone_congr {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (h : nhdsWithin x s = nhdsWithin x t) :
        tangentConeAt ๐•œ s x = tangentConeAt ๐•œ t x

        Alias of tangentConeAt_congr.


        Tangent cone of s at x depends only on ๐“[s] x.

        theorem tangentConeAt_inter_nhds {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (ht : t โˆˆ nhds x) :
        tangentConeAt ๐•œ (s โˆฉ t) x = tangentConeAt ๐•œ s x

        Intersecting with a neighborhood of the point does not change the tangent cone.

        @[deprecated tangentConeAt_inter_nhds (since := "2025-04-27")]
        theorem tangentCone_inter_nhds {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (ht : t โˆˆ nhds x) :
        tangentConeAt ๐•œ (s โˆฉ t) x = tangentConeAt ๐•œ s x

        Alias of tangentConeAt_inter_nhds.


        Intersecting with a neighborhood of the point does not change the tangent cone.

        theorem subset_tangentConeAt_prod_left {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} {F : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [NormedAddCommGroup F] [NormedSpace ๐•œ F] {x : E} {s : Set E} {t : Set F} {y : F} (ht : y โˆˆ closure t) :
        โ‡‘(LinearMap.inl ๐•œ E F) '' tangentConeAt ๐•œ s x โІ tangentConeAt ๐•œ (s ร—หข t) (x, y)

        The tangent cone of a product contains the tangent cone of its left factor.

        @[deprecated subset_tangentConeAt_prod_left (since := "2025-04-27")]
        theorem subset_tangentCone_prod_left {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} {F : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [NormedAddCommGroup F] [NormedSpace ๐•œ F] {x : E} {s : Set E} {t : Set F} {y : F} (ht : y โˆˆ closure t) :
        โ‡‘(LinearMap.inl ๐•œ E F) '' tangentConeAt ๐•œ s x โІ tangentConeAt ๐•œ (s ร—หข t) (x, y)

        Alias of subset_tangentConeAt_prod_left.


        The tangent cone of a product contains the tangent cone of its left factor.

        theorem subset_tangentConeAt_prod_right {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} {F : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [NormedAddCommGroup F] [NormedSpace ๐•œ F] {x : E} {s : Set E} {t : Set F} {y : F} (hs : x โˆˆ closure s) :
        โ‡‘(LinearMap.inr ๐•œ E F) '' tangentConeAt ๐•œ t y โІ tangentConeAt ๐•œ (s ร—หข t) (x, y)

        The tangent cone of a product contains the tangent cone of its right factor.

        @[deprecated subset_tangentConeAt_prod_right (since := "2025-04-27")]
        theorem subset_tangentCone_prod_right {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} {F : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [NormedAddCommGroup F] [NormedSpace ๐•œ F] {x : E} {s : Set E} {t : Set F} {y : F} (hs : x โˆˆ closure s) :
        โ‡‘(LinearMap.inr ๐•œ E F) '' tangentConeAt ๐•œ t y โІ tangentConeAt ๐•œ (s ร—หข t) (x, y)

        Alias of subset_tangentConeAt_prod_right.


        The tangent cone of a product contains the tangent cone of its right factor.

        theorem mapsTo_tangentConeAt_pi {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {ฮน : Type u_5} [DecidableEq ฮน] {E : ฮน โ†’ Type u_6} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] {s : (i : ฮน) โ†’ Set (E i)} {x : (i : ฮน) โ†’ E i} {i : ฮน} (hi : โˆ€ (j : ฮน), j โ‰  i โ†’ x j โˆˆ closure (s j)) :
        Set.MapsTo (โ‡‘(LinearMap.single ๐•œ E i)) (tangentConeAt ๐•œ (s i) (x i)) (tangentConeAt ๐•œ (Set.univ.pi s) x)

        The tangent cone of a product contains the tangent cone of each factor.

        @[deprecated mapsTo_tangentConeAt_pi (since := "2025-04-27")]
        theorem mapsTo_tangentCone_pi {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {ฮน : Type u_5} [DecidableEq ฮน] {E : ฮน โ†’ Type u_6} [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] {s : (i : ฮน) โ†’ Set (E i)} {x : (i : ฮน) โ†’ E i} {i : ฮน} (hi : โˆ€ (j : ฮน), j โ‰  i โ†’ x j โˆˆ closure (s j)) :
        Set.MapsTo (โ‡‘(LinearMap.single ๐•œ E i)) (tangentConeAt ๐•œ (s i) (x i)) (tangentConeAt ๐•œ (Set.univ.pi s) x)

        Alias of mapsTo_tangentConeAt_pi.


        The tangent cone of a product contains the tangent cone of each factor.

        If a subset of a real vector space contains an open segment, then the direction of this segment belongs to the tangent cone at its endpoints.

        @[deprecated mem_tangentConeAt_of_openSegment_subset (since := "2025-04-27")]

        Alias of mem_tangentConeAt_of_openSegment_subset.


        If a subset of a real vector space contains an open segment, then the direction of this segment belongs to the tangent cone at its endpoints.

        If a subset of a real vector space contains a segment, then the direction of this segment belongs to the tangent cone at its endpoints.

        @[deprecated mem_tangentConeAt_of_segment_subset (since := "2025-04-27")]

        Alias of mem_tangentConeAt_of_segment_subset.


        If a subset of a real vector space contains a segment, then the direction of this segment belongs to the tangent cone at its endpoints.

        theorem zero_mem_tangentCone {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {s : Set E} {x : E} (hx : x โˆˆ closure s) :
        0 โˆˆ tangentConeAt ๐•œ s x

        The tangent cone at a non-isolated point contains 0.

        theorem tangentConeAt_subset_zero {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s : Set E} (hx : ยฌAccPt x (Filter.principal s)) :
        tangentConeAt ๐•œ s x โІ 0

        If x is not an accumulation point of s, then the tangent cone of satxis a subset of{0}`.

        theorem UniqueDiffWithinAt.accPt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s : Set E} [Nontrivial E] (h : UniqueDiffWithinAt ๐•œ s x) :
        theorem tangentConeAt_nonempty_of_properSpace {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [ProperSpace E] {s : Set E} {x : E} (hx : AccPt x (Filter.principal s)) :

        In a proper space, the tangent cone at a non-isolated point is nontrivial.

        @[deprecated tangentConeAt_nonempty_of_properSpace (since := "2025-04-27")]
        theorem tangentCone_nonempty_of_properSpace {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [ProperSpace E] {s : Set E} {x : E} (hx : AccPt x (Filter.principal s)) :

        Alias of tangentConeAt_nonempty_of_properSpace.


        In a proper space, the tangent cone at a non-isolated point is nontrivial.

        theorem tangentConeAt_eq_univ {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {s : Set ๐•œ} {x : ๐•œ} (hx : AccPt x (Filter.principal s)) :
        tangentConeAt ๐•œ s x = Set.univ

        The tangent cone at a non-isolated point in dimension 1 is the whole space.

        @[deprecated tangentConeAt_eq_univ (since := "2025-04-27")]
        theorem tangentCone_eq_univ {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {s : Set ๐•œ} {x : ๐•œ} (hx : AccPt x (Filter.principal s)) :
        tangentConeAt ๐•œ s x = Set.univ

        Alias of tangentConeAt_eq_univ.


        The tangent cone at a non-isolated point in dimension 1 is the whole space.

        Properties of UniqueDiffWithinAt and UniqueDiffOn #

        This section is devoted to properties of the predicates UniqueDiffWithinAt and UniqueDiffOn.

        theorem UniqueDiffOn.uniqueDiffWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {s : Set E} {x : E} (hs : UniqueDiffOn ๐•œ s) (h : x โˆˆ s) :
        UniqueDiffWithinAt ๐•œ s x
        theorem uniqueDiffWithinAt_univ {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x : E} :
        theorem uniqueDiffOn_univ {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] :
        theorem uniqueDiffOn_empty {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] :
        theorem UniqueDiffWithinAt.congr_pt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x y : E} {s : Set E} (h : UniqueDiffWithinAt ๐•œ s x) (hy : x = y) :
        UniqueDiffWithinAt ๐•œ s y
        @[simp]
        theorem uniqueDiffWithinAt_closure {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s : Set E} :
        theorem UniqueDiffWithinAt.of_closure {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s : Set E} :
        UniqueDiffWithinAt ๐•œ (closure s) x โ†’ UniqueDiffWithinAt ๐•œ s x

        Alias of the forward direction of uniqueDiffWithinAt_closure.

        theorem UniqueDiffWithinAt.closure {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s : Set E} :
        UniqueDiffWithinAt ๐•œ s x โ†’ UniqueDiffWithinAt ๐•œ (closure s) x

        Alias of the reverse direction of uniqueDiffWithinAt_closure.

        theorem UniqueDiffWithinAt.mono_nhds {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (h : UniqueDiffWithinAt ๐•œ s x) (st : nhdsWithin x s โ‰ค nhdsWithin x t) :
        UniqueDiffWithinAt ๐•œ t x
        theorem UniqueDiffWithinAt.mono {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (h : UniqueDiffWithinAt ๐•œ s x) (st : s โІ t) :
        UniqueDiffWithinAt ๐•œ t x
        theorem UniqueDiffWithinAt.mono_closure {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (h : UniqueDiffWithinAt ๐•œ s x) (st : s โІ closure t) :
        UniqueDiffWithinAt ๐•œ t x
        theorem uniqueDiffWithinAt_congr {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (st : nhdsWithin x s = nhdsWithin x t) :
        UniqueDiffWithinAt ๐•œ s x โ†” UniqueDiffWithinAt ๐•œ t x
        theorem uniqueDiffWithinAt_inter {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (ht : t โˆˆ nhds x) :
        UniqueDiffWithinAt ๐•œ (s โˆฉ t) x โ†” UniqueDiffWithinAt ๐•œ s x
        theorem UniqueDiffWithinAt.inter {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (hs : UniqueDiffWithinAt ๐•œ s x) (ht : t โˆˆ nhds x) :
        UniqueDiffWithinAt ๐•œ (s โˆฉ t) x
        theorem uniqueDiffWithinAt_inter' {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (ht : t โˆˆ nhdsWithin x s) :
        UniqueDiffWithinAt ๐•œ (s โˆฉ t) x โ†” UniqueDiffWithinAt ๐•œ s x
        theorem UniqueDiffWithinAt.inter' {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s t : Set E} (hs : UniqueDiffWithinAt ๐•œ s x) (ht : t โˆˆ nhdsWithin x s) :
        UniqueDiffWithinAt ๐•œ (s โˆฉ t) x
        theorem uniqueDiffWithinAt_of_mem_nhds {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s : Set E} (h : s โˆˆ nhds x) :
        UniqueDiffWithinAt ๐•œ s x
        theorem IsOpen.uniqueDiffWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {x : E} {s : Set E} (hs : IsOpen s) (xs : x โˆˆ s) :
        UniqueDiffWithinAt ๐•œ s x
        theorem UniqueDiffOn.inter {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {s t : Set E} (hs : UniqueDiffOn ๐•œ s) (ht : IsOpen t) :
        UniqueDiffOn ๐•œ (s โˆฉ t)
        theorem IsOpen.uniqueDiffOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {s : Set E} (hs : IsOpen s) :
        UniqueDiffOn ๐•œ s
        theorem UniqueDiffWithinAt.prod {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} {F : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [NormedAddCommGroup F] [NormedSpace ๐•œ F] {x : E} {s : Set E} {t : Set F} {y : F} (hs : UniqueDiffWithinAt ๐•œ s x) (ht : UniqueDiffWithinAt ๐•œ t y) :

        The product of two sets of unique differentiability at points x and y has unique differentiability at (x, y).

        theorem UniqueDiffWithinAt.univ_pi {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] (ฮน : Type u_5) [Finite ฮน] (E : ฮน โ†’ Type u_6) [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] (s : (i : ฮน) โ†’ Set (E i)) (x : (i : ฮน) โ†’ E i) (h : โˆ€ (i : ฮน), UniqueDiffWithinAt ๐•œ (s i) (x i)) :
        theorem UniqueDiffWithinAt.pi {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] (ฮน : Type u_5) [Finite ฮน] (E : ฮน โ†’ Type u_6) [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] (s : (i : ฮน) โ†’ Set (E i)) (x : (i : ฮน) โ†’ E i) (I : Set ฮน) (h : โˆ€ i โˆˆ I, UniqueDiffWithinAt ๐•œ (s i) (x i)) :
        UniqueDiffWithinAt ๐•œ (I.pi s) x
        theorem UniqueDiffOn.prod {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} {F : Type u_3} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [NormedAddCommGroup F] [NormedSpace ๐•œ F] {s : Set E} {t : Set F} (hs : UniqueDiffOn ๐•œ s) (ht : UniqueDiffOn ๐•œ t) :
        UniqueDiffOn ๐•œ (s ร—หข t)

        The product of two sets of unique differentiability is a set of unique differentiability.

        theorem UniqueDiffOn.pi {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] (ฮน : Type u_5) [Finite ฮน] (E : ฮน โ†’ Type u_6) [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] (s : (i : ฮน) โ†’ Set (E i)) (I : Set ฮน) (h : โˆ€ i โˆˆ I, UniqueDiffOn ๐•œ (s i)) :
        UniqueDiffOn ๐•œ (I.pi s)

        The finite product of a family of sets of unique differentiability is a set of unique differentiability.

        theorem UniqueDiffOn.univ_pi {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] (ฮน : Type u_5) [Finite ฮน] (E : ฮน โ†’ Type u_6) [(i : ฮน) โ†’ NormedAddCommGroup (E i)] [(i : ฮน) โ†’ NormedSpace ๐•œ (E i)] (s : (i : ฮน) โ†’ Set (E i)) (h : โˆ€ (i : ฮน), UniqueDiffOn ๐•œ (s i)) :
        UniqueDiffOn ๐•œ (Set.univ.pi s)

        The finite product of a family of sets of unique differentiability is a set of unique differentiability.

        theorem uniqueDiffWithinAt_convex {G : Type u_4} [NormedAddCommGroup G] [NormedSpace โ„ G] {s : Set G} (conv : Convex โ„ s) (hs : (interior s).Nonempty) {x : G} (hx : x โˆˆ closure s) :

        In a real vector space, a convex set with nonempty interior is a set of unique differentiability at every point of its closure.

        In a real vector space, a convex set with nonempty interior is a set of unique differentiability.

        theorem uniqueDiffOn_Icc {a b : โ„} (hab : a < b) :

        The real interval [0, 1] is a set of unique differentiability.

        theorem uniqueDiffWithinAt_iff_accPt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {s : Set ๐•œ} {x : ๐•œ} :

        In one dimension, a point is a point of unique differentiability of a set iff it is an accumulation point of the set.

        theorem AccPt.uniqueDiffWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {s : Set ๐•œ} {x : ๐•œ} :
        AccPt x (Filter.principal s) โ†’ UniqueDiffWithinAt ๐•œ s x

        Alias of the reverse direction of uniqueDiffWithinAt_iff_accPt.


        In one dimension, a point is a point of unique differentiability of a set iff it is an accumulation point of the set.

        @[deprecated uniqueDiffWithinAt_iff_accPt (since := "2025-04-20")]
        theorem uniqueDiffWithinAt_or_nhdsWithin_eq_bot {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] (s : Set ๐•œ) (x : ๐•œ) :

        In one dimension, every point is either a point of unique differentiability, or isolated.