Documentation

Mathlib.Analysis.Calculus.TangentCone.Basic

Basic properties of tangent cones and sets with unique differentiability property #

In this file we prove basic lemmas about tangentConeAt, UniqueDiffWithinAt, and UniqueDiffOn.

theorem tangentConeAt_mono {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [SMul ๐•œ E] [TopologicalSpace E] {s t : Set E} {x : E} (h : s โІ t) :
tangentConeAt ๐•œ s x โІ tangentConeAt ๐•œ t x
theorem tangentConeAt_mono_field {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [SMul ๐•œ E] [TopologicalSpace E] {s : Set E} {x : E} {๐•œ' : Type u_3} [Monoid ๐•œ'] [SMul ๐•œ ๐•œ'] [MulAction ๐•œ' E] [IsScalarTower ๐•œ ๐•œ' E] :
tangentConeAt ๐•œ s x โІ tangentConeAt ๐•œ' s x

Given x โˆˆ s and a semiring extension ๐•œ โІ ๐•œ', the tangent cone of s at x with respect to ๐•œ is contained in the tangent cone of s at x with respect to ๐•œ'.

theorem Filter.HasBasis.tangentConeAt_eq_biInter_closure {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [SMul ๐•œ E] [TopologicalSpace E] {s : Set E} {x : E} {ฮน : Sort u_3} {p : ฮน โ†’ Prop} {U : ฮน โ†’ Set E} (h : (nhds 0).HasBasis p U) :
tangentConeAt ๐•œ s x = โ‹‚ (i : ฮน), โ‹‚ (_ : p i), closure (Set.univ โ€ข (U i โˆฉ (fun (x_2 : E) => x + x_2) โปยน' s))
theorem tangentConeAt_eq_biInter_closure {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [SMul ๐•œ E] [TopologicalSpace E] {s : Set E} {x : E} :
tangentConeAt ๐•œ s x = โ‹‚ U โˆˆ nhds 0, closure (Set.univ โ€ข (U โˆฉ (fun (x_1 : E) => x + x_1) โปยน' s))
theorem tangentConeAt_mono_nhds {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [SMul ๐•œ E] [TopologicalSpace E] {s t : Set E} {x : E} [ContinuousAdd E] (h : nhdsWithin x s โ‰ค nhdsWithin x t) :
tangentConeAt ๐•œ s x โІ tangentConeAt ๐•œ t x
theorem tangentConeAt_congr {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [SMul ๐•œ E] [TopologicalSpace E] {s t : Set E} {x : E} [ContinuousAdd 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.

theorem tangentConeAt_inter_nhds {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [SMul ๐•œ E] [TopologicalSpace E] {s t : Set E} {x : E} [ContinuousAdd 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.

theorem mem_closure_of_nonempty_tangentConeAt {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [SMul ๐•œ E] [TopologicalSpace E] {s : Set E} {x : E} [ContinuousAdd E] (h : (tangentConeAt ๐•œ s x).Nonempty) :
@[simp]
theorem tangentConeAt_closure {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [SMul ๐•œ E] [TopologicalSpace E] {s : Set E} {x : E} [ContinuousAdd E] [ContinuousConstSMul ๐•œ E] :
tangentConeAt ๐•œ (closure s) x = tangentConeAt ๐•œ s x
theorem UniqueDiffWithinAt.mono {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] {s t : Set E} {x : E} (h : UniqueDiffWithinAt ๐•œ s x) (st : s โІ t) :
UniqueDiffWithinAt ๐•œ t x
theorem UniqueDiffWithinAt.closure {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] {s : Set E} {x : E} (h : UniqueDiffWithinAt ๐•œ s x) :
UniqueDiffWithinAt ๐•œ (closure s) x
theorem UniqueDiffWithinAt.mono_nhds {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s t : Set E} {x : E} (h : UniqueDiffWithinAt ๐•œ s x) (st : nhdsWithin x s โ‰ค nhdsWithin x t) :
UniqueDiffWithinAt ๐•œ t x
theorem uniqueDiffWithinAt_congr {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s t : Set E} {x : E} (st : nhdsWithin x s = nhdsWithin x t) :
UniqueDiffWithinAt ๐•œ s x โ†” UniqueDiffWithinAt ๐•œ t x
theorem uniqueDiffWithinAt_inter {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s t : Set E} {x : E} (ht : t โˆˆ nhds x) :
UniqueDiffWithinAt ๐•œ (s โˆฉ t) x โ†” UniqueDiffWithinAt ๐•œ s x
theorem UniqueDiffWithinAt.inter {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s t : Set E} {x : E} (hs : UniqueDiffWithinAt ๐•œ s x) (ht : t โˆˆ nhds x) :
UniqueDiffWithinAt ๐•œ (s โˆฉ t) x
theorem UniqueDiffOn.inter {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s t : Set E} (hs : UniqueDiffOn ๐•œ s) (ht : IsOpen t) :
UniqueDiffOn ๐•œ (s โˆฉ t)
theorem uniqueDiffWithinAt_inter' {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s t : Set E} {x : E} (ht : t โˆˆ nhdsWithin x s) :
UniqueDiffWithinAt ๐•œ (s โˆฉ t) x โ†” UniqueDiffWithinAt ๐•œ s x
theorem UniqueDiffWithinAt.inter' {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s t : Set E} {x : E} (hs : UniqueDiffWithinAt ๐•œ s x) (ht : t โˆˆ nhdsWithin x s) :
UniqueDiffWithinAt ๐•œ (s โˆฉ t) x
theorem zero_mem_tangentConeAt {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s : Set E} {x : E} (hx : x โˆˆ closure s) :
0 โˆˆ tangentConeAt ๐•œ s x

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

@[deprecated zero_mem_tangentConeAt (since := "2026-01-21")]
theorem zero_mem_tangentCone {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s : Set E} {x : E} (hx : x โˆˆ closure s) :
0 โˆˆ tangentConeAt ๐•œ s x

Alias of zero_mem_tangentConeAt.


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

@[simp]
theorem zero_mem_tangentConeAt_iff {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s : Set E} {x : E} :
theorem tangentConeAt_subset_zero {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s : Set E} {x : E} [T2Space 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 s at x is a subset of {0}.

theorem AccPt.of_mem_tangentConeAt_ne_zero {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s : Set E} {x : E} [T2Space E] {y : E} (hy : y โˆˆ tangentConeAt ๐•œ s x) (hyโ‚€ : y โ‰  0) :
theorem UniqueDiffWithinAt.accPt {๐•œ : Type u_1} {E : Type u_2} [AddCommGroup E] [Semiring ๐•œ] [Module ๐•œ E] [TopologicalSpace E] [ContinuousAdd E] {s : Set E} {x : E} [T2Space E] [Nontrivial E] (h : UniqueDiffWithinAt ๐•œ s x) :
theorem mem_tangentConeAt_of_add_smul_mem {๐•œ : Type u_1} {E : Type u_2} [DivisionSemiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace ๐•œ] [TopologicalSpace E] [ContinuousSMul ๐•œ E] {s : Set E} {x y : E} {ฮฑ : Type u_3} {l : Filter ฮฑ} [l.NeBot] {c : ฮฑ โ†’ ๐•œ} (hcโ‚€ : Filter.Tendsto c l (nhdsWithin 0 {0}แถœ)) (hmem : โˆ€แถ  (n : ฮฑ) in l, x + c n โ€ข y โˆˆ s) :
y โˆˆ tangentConeAt ๐•œ s x
@[simp]
theorem tangentConeAt_univ {๐•œ : Type u_1} {E : Type u_2} [DivisionSemiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace ๐•œ] [TopologicalSpace E] [ContinuousSMul ๐•œ E] {x : E} [(nhdsWithin 0 {0}แถœ).NeBot] :
theorem tangentConeAt_of_mem_nhds {๐•œ : Type u_1} {E : Type u_2} [DivisionSemiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace ๐•œ] [TopologicalSpace E] [ContinuousSMul ๐•œ E] {s : Set E} {x : E} [(nhdsWithin 0 {0}แถœ).NeBot] [ContinuousAdd E] (h : s โˆˆ nhds x) :
tangentConeAt ๐•œ s x = Set.univ

Properties of UniqueDiffWithinAt and UniqueDiffOn #

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

theorem uniqueDiffOn_empty {๐•œ : Type u_1} {E : Type u_2} [Semiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] :
theorem UniqueDiffWithinAt.congr_pt {๐•œ : Type u_1} {E : Type u_2} [Semiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x y : E} {s : Set E} (h : UniqueDiffWithinAt ๐•œ s x) (hy : x = y) :
UniqueDiffWithinAt ๐•œ s y
theorem UniqueDiffWithinAt.mono_field {๐•œ : Type u_1} {E : Type u_2} [Semiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x : E} {s : Set E} {๐•œ' : Type u_3} [Semiring ๐•œ'] [SMul ๐•œ ๐•œ'] [Module ๐•œ' E] [IsScalarTower ๐•œ ๐•œ' E] (hs : UniqueDiffWithinAt ๐•œ s x) :
UniqueDiffWithinAt ๐•œ' s x

Assume that E is a normed vector space over semirings ๐•œ โІ ๐•œ' and that x โˆˆ s is a point of unique differentiability with respect to the set s and the smaller semiring ๐•œ, then x is also a point of unique differentiability with respect to the set s and the larger semiring ๐•œ'.

theorem UniqueDiffOn.mono_field {๐•œ : Type u_1} {E : Type u_2} [Semiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {s : Set E} {๐•œ' : Type u_3} [Semiring ๐•œ'] [SMul ๐•œ ๐•œ'] [Module ๐•œ' E] [IsScalarTower ๐•œ ๐•œ' E] (hs : UniqueDiffOn ๐•œ s) :
UniqueDiffOn ๐•œ' s

Assume that E is a normed vector space over semirings ๐•œ โІ ๐•œ' and all points of s are points of unique differentiability with respect to the smaller semiring ๐•œ, then they are also points of unique differentiability with respect to the larger semiring ๐•œ.

@[simp]
theorem uniqueDiffWithinAt_closure {๐•œ : Type u_1} {E : Type u_2} [Semiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x : E} {s : Set E} [ContinuousAdd E] [ContinuousConstSMul ๐•œ E] :
theorem UniqueDiffWithinAt.of_closure {๐•œ : Type u_1} {E : Type u_2} [Semiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x : E} {s : Set E} [ContinuousAdd E] [ContinuousConstSMul ๐•œ E] :
UniqueDiffWithinAt ๐•œ (closure s) x โ†’ UniqueDiffWithinAt ๐•œ s x

Alias of the forward direction of uniqueDiffWithinAt_closure.

theorem UniqueDiffWithinAt.mono_closure {๐•œ : Type u_1} {E : Type u_2} [Semiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] {x : E} {s t : Set E} [ContinuousAdd E] [ContinuousConstSMul ๐•œ E] (h : UniqueDiffWithinAt ๐•œ s x) (st : s โІ closure t) :
UniqueDiffWithinAt ๐•œ t x
@[simp]
theorem uniqueDiffWithinAt_univ {๐•œ : Type u_1} {E : Type u_2} [DivisionSemiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] [TopologicalSpace ๐•œ] [(nhdsWithin 0 {0}แถœ).NeBot] [ContinuousSMul ๐•œ E] {x : E} :
@[simp]
theorem uniqueDiffOn_univ {๐•œ : Type u_1} {E : Type u_2} [DivisionSemiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] [TopologicalSpace ๐•œ] [(nhdsWithin 0 {0}แถœ).NeBot] [ContinuousSMul ๐•œ E] :
theorem uniqueDiffWithinAt_of_mem_nhds {๐•œ : Type u_1} {E : Type u_2} [DivisionSemiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] [TopologicalSpace ๐•œ] [(nhdsWithin 0 {0}แถœ).NeBot] [ContinuousSMul ๐•œ E] {x : E} {s : Set E} [ContinuousAdd E] (h : s โˆˆ nhds x) :
UniqueDiffWithinAt ๐•œ s x
theorem IsOpen.uniqueDiffWithinAt {๐•œ : Type u_1} {E : Type u_2} [DivisionSemiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] [TopologicalSpace ๐•œ] [(nhdsWithin 0 {0}แถœ).NeBot] [ContinuousSMul ๐•œ E] {x : E} {s : Set E} [ContinuousAdd E] (hs : IsOpen s) (xs : x โˆˆ s) :
UniqueDiffWithinAt ๐•œ s x
theorem IsOpen.uniqueDiffOn {๐•œ : Type u_1} {E : Type u_2} [DivisionSemiring ๐•œ] [AddCommGroup E] [Module ๐•œ E] [TopologicalSpace E] [TopologicalSpace ๐•œ] [(nhdsWithin 0 {0}แถœ).NeBot] [ContinuousSMul ๐•œ E] {s : Set E} [ContinuousAdd E] (hs : IsOpen s) :
UniqueDiffOn ๐•œ s