Skip to content

Commit 256af21

Browse files
feat(Analysis/Distribution/Support): version for D' of existing lemmas for S' (#40796)
This is an almost direct copy-paste of the existing lemmas for tempered distributions to generic distributions.
1 parent 79841fc commit 256af21

2 files changed

Lines changed: 92 additions & 3 deletions

File tree

Mathlib/Analysis/Distribution/Distribution.lean

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,11 @@ lemma lineDerivOp_eq_lineDerivCLM {v : E} {T : 𝓓'(Ω, F)} :
259259
∂_{v} T = lineDerivCLM v T :=
260260
rfl
261261

262+
@[simp]
263+
theorem lineDerivOp_apply_apply (f : 𝓓'(Ω, F)) (g : 𝓓(Ω, ℝ)) (m : E) :
264+
∂_{m} f g = f (- ∂_{m} g) := by
265+
rw [map_neg]; rfl
266+
262267
noncomputable instance : LineDerivAdd E 𝓓'(Ω, F) 𝓓'(Ω, F) where
263268
lineDerivOp_add v := map_add (lineDerivCLM v)
264269
lineDerivOp_left_add _ _ T := congr($lineDerivCLM_add T)

Mathlib/Analysis/Distribution/Support.lean

Lines changed: 87 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Authors: Moritz Doll, Anatole Dedecker
66
module
77

88
public import Mathlib.Analysis.Distribution.TemperedDistribution
9+
public import Mathlib.Analysis.Distribution.Distribution
910

1011
/-! # Support of distributions
1112
@@ -24,7 +25,8 @@ compactly supported) and all basic properties are proved in an abstract setting
2425
distribution vanishes on the complement of the set.
2526
2627
## Main statements
27-
* `TemperedDistribution.dsupport_delta`: The support of the delta distribution is a single point.
28+
* `dsupport_delta`: The support of the delta distribution is a single point. Available for tempered
29+
and classical distributions.
2830
2931
-/
3032

@@ -169,6 +171,8 @@ end normed
169171

170172
open SchwartzMap Distribution TemperedDistribution
171173

174+
namespace TemperedDistribution
175+
172176
variable [NormedAddCommGroup E] [NormedAddCommGroup F] [NormedSpace ℝ E] [NormedSpace ℂ F]
173177

174178
variable {f : 𝓢'(E, F)} {s : Set E}
@@ -185,13 +189,16 @@ theorem smulLeftCLM (hf : IsVanishingOn f s) {g : E → ℂ} (hg : g.HasTemperat
185189
rw [SchwartzMap.smulLeftCLM_apply hg]
186190
exact (tsupport_smul_subset_right g u).trans hu
187191

192+
@[deprecated (since := "2026-06-27")] alias Distribution.IsVanishingOn.smulLeftCLM :=
193+
Distribution.TemperedDistribution.IsVanishingOn.smulLeftCLM
194+
188195
open LineDeriv
189196

190197
@[fun_prop]
191198
theorem lineDerivOp (hf : IsVanishingOn f s) (m : E) :
192199
IsVanishingOn (∂_{m} f : 𝓢'(E, F)) s := by
193200
intro u hu
194-
simp only [lineDerivOp_apply_apply, map_neg, neg_eq_zero]
201+
simp only [TemperedDistribution.lineDerivOp_apply_apply, map_neg, neg_eq_zero]
195202
exact hf (∂_{m} u) <| (tsupport_fderiv_apply_subset ℝ m).trans hu
196203

197204
@[fun_prop]
@@ -201,7 +208,7 @@ theorem iteratedLineDerivOp {n : ℕ} (hf : IsVanishingOn f s) (m : Fin n → E)
201208
| zero =>
202209
exact hf
203210
| succ n IH =>
204-
exact (IH <| Fin.tail m).lineDerivOp (m 0)
211+
exact lineDerivOp (IH <| Fin.tail m) (m 0)
205212

206213
@[fun_prop]
207214
theorem _root_.TemperedDistribution.isVanishingOn_delta (x : E) :
@@ -218,6 +225,9 @@ theorem dsupport_smulLeftCLM_subset {g : E → ℂ} (hg : g.HasTemperateGrowth)
218225
dsupport (smulLeftCLM F g f) ⊆ dsupport f := by
219226
gcongr; fun_prop
220227

228+
@[deprecated (since := "2026-06-27")] alias Distribution.dsupport_smulLeftCLM_subset :=
229+
Distribution.TemperedDistribution.dsupport_smulLeftCLM_subset
230+
221231
open LineDeriv
222232

223233
theorem dsupport_lineDerivOp_subset (m : E) : dsupport (∂_{m} f : 𝓢'(E, F)) ⊆ dsupport f := by
@@ -245,4 +255,78 @@ theorem dsupport_delta [FiniteDimensional ℝ E] (x : E) :
245255

246256
end Support
247257

258+
end TemperedDistribution
259+
260+
/-! ## Classical distributions -/
261+
262+
open TopologicalSpace Distributions
263+
264+
variable
265+
{E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] {Ω : Opens E}
266+
{F : Type*} [AddCommGroup F] [Module ℝ F] [TopologicalSpace F]
267+
[IsTopologicalAddGroup F] [ContinuousSMul ℝ F]
268+
{n : ℕ∞}
269+
270+
variable {f : 𝓓'(Ω, F)} {s : Set E}
271+
272+
namespace IsVanishingOn
273+
274+
open scoped Topology
275+
276+
open LineDeriv
277+
278+
@[fun_prop]
279+
theorem lineDerivOp (hf : IsVanishingOn f s) (m : E) :
280+
IsVanishingOn (∂_{m} f : 𝓓'(Ω, F)) s := by
281+
intro u hu
282+
simp only [Distribution.lineDerivOp_apply_apply, map_neg, neg_eq_zero]
283+
exact hf (∂_{m} u) <| (tsupport_fderiv_apply_subset ℝ m).trans hu
284+
285+
@[fun_prop]
286+
theorem iteratedLineDerivOp {n : ℕ} (hf : IsVanishingOn f s) (m : Fin n → E) :
287+
IsVanishingOn (∂^{m} f : 𝓓'(Ω, F)) s := by
288+
induction n with
289+
| zero =>
290+
exact hf
291+
| succ n IH =>
292+
exact lineDerivOp (IH <| Fin.tail m) (m 0)
293+
294+
@[fun_prop]
295+
theorem _root_.Distribution.isVanishingOn_delta (x : E) :
296+
IsVanishingOn (Distribution.delta x : 𝓓'^{n}(Ω, ℝ)) {x}ᶜ := by
297+
intro u hu
298+
rw [Set.subset_compl_singleton_iff] at hu
299+
apply image_eq_zero_of_notMem_tsupport hu
300+
301+
end IsVanishingOn
302+
303+
section Support
304+
305+
open LineDeriv
306+
307+
theorem dsupport_lineDerivOp_subset (m : E) : dsupport (∂_{m} f : 𝓓'(Ω, F)) ⊆ dsupport f := by
308+
gcongr; fun_prop
309+
310+
theorem dsupport_iteratedLineDerivOp_subset {n : ℕ} (m : Fin n → E) :
311+
dsupport (∂^{m} f : 𝓓'(Ω, F)) ⊆ dsupport f := by
312+
gcongr; fun_prop
313+
314+
theorem dsupport_delta [FiniteDimensional ℝ E] (x : E) (hx : x ∈ Ω) :
315+
dsupport (Distribution.delta x : 𝓓'^{n}(Ω, ℝ)) = {x} := by
316+
apply subset_antisymm
317+
· intro x' hx'
318+
rw [mem_dsupport_iff] at hx'
319+
exact hx' {x} (isVanishingOn_delta x) (T1Space.t1 x)
320+
rintro x rfl
321+
rw [mem_dsupport_iff_forall_exists_ne]
322+
intro s hxs hs
323+
set t := s ∩ Ω
324+
have ht : IsOpen t := hs.inter Ω.isOpen
325+
have htx : x ∈ t := Set.mem_inter hxs hx
326+
obtain ⟨u, h₁, h₂, h₃, -, h₄⟩ :=
327+
exists_contDiff_tsupport_subset (n := n) ((IsOpen.mem_nhds_iff ht).mpr htx)
328+
exact ⟨⟨u, h₃, h₂, by aesop⟩, ⟨by aesop, by simp [h₄]⟩⟩
329+
330+
end Support
331+
248332
end Distribution

0 commit comments

Comments
 (0)