Skip to content

Commit 501992c

Browse files
kebekussgouezel
andcommitted
feat: behavior of unique differentiablity under field extension (#26429)
If `s` is a domain of unique differentiability for a field `k`, then it is also a domain of unique differentiability for larger fields. This PR provides material required to implement a reviewer's suggestion in #26353 Co-authored-by: Sebastien Gouezel <sebastien.gouezel@univ-rennes1.fr>
1 parent 4198e49 commit 501992c

File tree

3 files changed

+58
-12
lines changed

3 files changed

+58
-12
lines changed

Mathlib/Analysis/Calculus/TangentCone.lean

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,8 @@ theorem UniqueDiffWithinAt.congr_pt (h : UniqueDiffWithinAt 𝕜 s x) (hy : x =
436436
end TVS
437437

438438
section Normed
439-
variable [NormedAddCommGroup E] [NormedSpace 𝕜 E]
439+
variable {𝕜' : Type*} [NontriviallyNormedField 𝕜'] [NormedAlgebra 𝕜 𝕜']
440+
variable [NormedAddCommGroup E] [NormedSpace 𝕜 E] [NormedSpace 𝕜' E] [IsScalarTower 𝕜 𝕜' E]
440441
variable [NormedAddCommGroup F] [NormedSpace 𝕜 F]
441442
variable {x y : E} {s t : Set E}
442443

@@ -545,6 +546,46 @@ theorem UniqueDiffOn.univ_pi (ι : Type*) [Finite ι] (E : ι → Type*)
545546
(h : ∀ i, UniqueDiffOn 𝕜 (s i)) : UniqueDiffOn 𝕜 (Set.pi univ s) :=
546547
UniqueDiffOn.pi _ _ _ _ fun i _ => h i
547548

549+
/--
550+
Given `x ∈ s` and a field extension `𝕜 ⊆ 𝕜'`, the tangent cone of `s` at `x` with
551+
respect to `𝕜` is contained in the tangent cone of `s` at `x` with respect to `𝕜'`.
552+
-/
553+
theorem tangentConeAt_mono_field : tangentConeAt 𝕜 s x ⊆ tangentConeAt 𝕜' s x := by
554+
intro α hα
555+
simp only [tangentConeAt, eventually_atTop, ge_iff_le, tendsto_norm_atTop_iff_cobounded,
556+
mem_setOf_eq] at hα ⊢
557+
obtain ⟨c, d, ⟨a, h₁a⟩, h₁, h₂⟩ := hα
558+
use ((algebraMap 𝕜 𝕜') ∘ c), d
559+
constructor
560+
· use a
561+
· constructor
562+
· intro β hβ
563+
rw [mem_map, mem_atTop_sets]
564+
obtain ⟨n, hn⟩ := mem_atTop_sets.1
565+
(mem_map.1 (h₁ (algebraMap_cobounded_le_cobounded (𝕜 := 𝕜) (𝕜' := 𝕜') hβ)))
566+
use n, fun _ _ ↦ by simp_all
567+
· simpa
568+
569+
/--
570+
Assume that `E` is a normed vector space over normed fields `𝕜 ⊆ 𝕜'` and that `x ∈ s` is a point
571+
of unique differentiability with respect to the set `s` and the smaller field `𝕜`, then `x` is also
572+
a point of unique differentiability with respect to the set `s` and the larger field `𝕜'`.
573+
-/
574+
theorem UniqueDiffWithinAt.mono_field (h₂s : UniqueDiffWithinAt 𝕜 s x) :
575+
UniqueDiffWithinAt 𝕜' s x := by
576+
simp_all only [uniqueDiffWithinAt_iff, and_true]
577+
apply Dense.mono _ h₂s.1
578+
trans ↑(Submodule.span 𝕜 (tangentConeAt 𝕜' s x))
579+
<;> simp [Submodule.span_mono tangentConeAt_mono_field]
580+
581+
/--
582+
Assume that `E` is a normed vector space over normed fields `𝕜 ⊆ 𝕜'` and all points of `s` are
583+
points of unique differentiability with respect to the smaller field `𝕜`, then they are also points
584+
of unique differentiability with respect to the larger field `𝕜`.
585+
-/
586+
theorem UniqueDiffOn.mono_field (h₂s : UniqueDiffOn 𝕜 s) :
587+
UniqueDiffOn 𝕜' s := fun x hx ↦ (h₂s x hx).mono_field
588+
548589
end Normed
549590

550591
section RealNormed

Mathlib/Analysis/Normed/Module/Basic.lean

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,19 @@ end NNReal
288288

289289
variable (𝕜)
290290

291+
/--
292+
Preimages of cobounded sets under the algebra map are cobounded.
293+
-/
294+
theorem algebraMap_cobounded_le_cobounded [NormOneClass 𝕜'] :
295+
Filter.map (algebraMap 𝕜 𝕜') (Bornology.cobounded 𝕜) ≤ Bornology.cobounded 𝕜' := by
296+
intro c hc
297+
rw [Filter.mem_map, ← Bornology.isCobounded_def, ← Bornology.isBounded_compl_iff,
298+
isBounded_iff_forall_norm_le]
299+
obtain ⟨s, hs⟩ := isBounded_iff_forall_norm_le.1
300+
(Bornology.isBounded_compl_iff.2 (Bornology.isCobounded_def.1 hc))
301+
use s
302+
exact fun x hx ↦ by simpa [norm_algebraMap, norm_one] using hs ((algebraMap 𝕜 𝕜') x) hx
303+
291304
/-- In a normed algebra, the inclusion of the base field in the extended field is an isometry. -/
292305
theorem algebraMap_isometry [NormOneClass 𝕜'] : Isometry (algebraMap 𝕜 𝕜') := by
293306
refine Isometry.of_dist_eq fun x y => ?_

Mathlib/Analysis/RCLike/TangentCone.lean

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,12 @@ variable {𝕜 : Type*} [NontriviallyNormedField 𝕜] [h𝕜 : IsRCLikeNormedFi
2020
theorem tangentConeAt_real_subset_isRCLikeNormedField :
2121
tangentConeAt ℝ s x ⊆ tangentConeAt 𝕜 s x := by
2222
letI := h𝕜.rclike
23-
rintro y ⟨c, d, d_mem, c_lim, hcd⟩
24-
let c' : ℕ → 𝕜 := fun n ↦ c n
25-
refine ⟨c', d, d_mem, by simpa [c'] using c_lim, ?_⟩
26-
convert hcd using 2 with n
27-
simp [c']
23+
exact tangentConeAt_mono_field
2824

2925
theorem UniqueDiffWithinAt.of_real (hs : UniqueDiffWithinAt ℝ s x) :
3026
UniqueDiffWithinAt 𝕜 s x := by
31-
refine ⟨?_, hs.mem_closure⟩
32-
letI : RCLike 𝕜 := h𝕜.rclike
33-
apply hs.dense_tangentConeAt.mono
34-
have : (Submodule.span ℝ (tangentConeAt ℝ s x) : Set E)
35-
⊆ (Submodule.span 𝕜 (tangentConeAt ℝ s x)) := Submodule.span_subset_span _ _ _
36-
exact this.trans (Submodule.span_mono tangentConeAt_real_subset_isRCLikeNormedField)
27+
letI := h𝕜.rclike
28+
exact hs.mono_field
3729

3830
theorem UniqueDiffOn.of_real (hs : UniqueDiffOn ℝ s) :
3931
UniqueDiffOn 𝕜 s :=

0 commit comments

Comments
 (0)