Zulip Chat Archive
Stream: Is there code for X?
Topic: Bump functions
Patrick Massot (Feb 19 2022 at 17:57):
@Yury G. Kudryashov and @Sebastien Gouezel what is the status of smooth bump function in vector spaces? I can find a lot of topological stuff and some manifold stuff, but not the intermediate vector space notion. Specifically I have a compact set in a finite dimensional real vector space and a neighborhood of , do we have a smooth -value function which equals near and has compact support inside ?
Yury G. Kudryashov (Feb 19 2022 at 18:07):
You can use docs#exists_smooth_zero_one_of_closed
Yury G. Kudryashov (Feb 19 2022 at 18:08):
And use the fact that a vector space is a manifold.
Patrick Massot (Feb 19 2022 at 18:08):
Do you mean we actually have this for manifolds but not for vector spaces?
Patrick Massot (Feb 19 2022 at 18:09):
This doesn't seem reasonable to import manifold theory for this
Yury G. Kudryashov (Feb 19 2022 at 18:09):
We have bump function supported on a ball for a vector space.
Patrick Massot (Feb 19 2022 at 18:10):
I don't see how to prove this lemma for manifolds without having a simpler proof for vector spaces.
Yury G. Kudryashov (Feb 19 2022 at 18:11):
The proof for vector spaces (and closed sets, not closed balls) is the same as for manifolds.
Yury G. Kudryashov (Feb 19 2022 at 18:12):
The main lemma is docs#smooth_bump_covering.exists_is_subordinate.
Yury G. Kudryashov (Feb 19 2022 at 18:13):
Why importing manifolds is so bad?
Heather Macbeth (Feb 19 2022 at 18:13):
@Yury G. Kudryashov There's also https://leanprover-community.github.io/mathlib_docs/analysis/calculus/specific_functions.html right?
Yury G. Kudryashov (Feb 19 2022 at 18:14):
Yes but this is about bump functions supported on closed balls.
Yury G. Kudryashov (Feb 19 2022 at 18:14):
(more precisely, on closed balls in an unspecified Euclidean metric on your space)
Yury G. Kudryashov (Feb 19 2022 at 18:21):
@Patrick Massot You can repeat the proof for vector spaces using docs#times_cont_diff_bump if you want to avoid importing manifolds.
Yury G. Kudryashov (Feb 19 2022 at 18:22):
It will be a bit easier because you won't need to care about the manifold boundary.
Patrick Massot (Feb 19 2022 at 18:23):
Usually I don't mind crushing easy things with super general tools, but that one seems a bit too much
Yury G. Kudryashov (Feb 19 2022 at 18:25):
I would prefer not to have 2 theories of smooth partitions of unity in mathlib, one for vector spaces and one for manifolds.
Yury G. Kudryashov (Feb 19 2022 at 18:26):
Because it will be hard to maintain feature parity.
Patrick Massot (Feb 19 2022 at 18:28):
We'll have to restate things anyway
Patrick Massot (Feb 19 2022 at 18:29):
I'm not even really convince you could derive the statement I asked about from the manifold stuff we have.
Yury G. Kudryashov (Feb 19 2022 at 18:46):
Let me do it.
Yury G. Kudryashov (Feb 19 2022 at 18:51):
import geometry.manifold.partition_of_unity
open set
open_locale manifold
lemma exists_times_cont_diff_zero_one {E : Type*} [normed_group E]
[normed_space ℝ E] [finite_dimensional ℝ E] {s t : set E} (hs : is_closed s)
(ht : is_closed t) (hd : disjoint s t) :
∃ f : E → ℝ, times_cont_diff ℝ ⊤ f ∧ eq_on f 0 s ∧ eq_on f 1 t ∧
∀ x, f x ∈ Icc (0 : ℝ) 1 :=
let ⟨f, hfs, hft, hf01⟩ := exists_smooth_zero_one_of_closed 𝓘(ℝ, E) hs ht hd
in ⟨f, f.smooth.times_cont_diff, hfs, hft, hf01⟩
Yury G. Kudryashov (Feb 19 2022 at 18:52):
If you want the function to be 1 in a neighborhood of K
, then you need to use some separation property first.
Yury G. Kudryashov (Feb 19 2022 at 18:53):
IMHO, this should be done for manifolds.
Yury G. Kudryashov (Feb 19 2022 at 18:58):
(I don't remember what are the minimal assumptions for existence of intermediate compact sets)
Patrick Massot (Feb 19 2022 at 19:29):
This is indeed easier than what I thought. The neighborhood question is independent from the question of going from manifolds to vector spaces.
Yury G. Kudryashov (Feb 19 2022 at 20:06):
Thanks @Sebastien Gouezel for writing such a good manifolds library.
Patrick Massot (Feb 27 2022 at 18:30):
I just tried to use this idea of pulling the whole manifold library to get bump functions in vector spaces. Unfortunately if also brings smooth_at
in the root namespace. @Sebastien Gouezel do you think we could move this docs#smooth_at to some manifold specific namespace?
Sebastien Gouezel (Feb 27 2022 at 19:41):
Yes, sure!
Patrick Massot (Feb 27 2022 at 20:18):
Do you have a namespace to suggest?
Yury G. Kudryashov (Feb 27 2022 at 20:21):
We can just call it msmooth_at
.
Yury G. Kudryashov (Feb 27 2022 at 20:22):
This will agree with mdifferentiable
etc
Last updated: Dec 20 2023 at 11:08 UTC