@@ -6,6 +6,7 @@ Authors: Moritz Doll, Anatole Dedecker
66module
77
88public 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
170172open SchwartzMap Distribution TemperedDistribution
171173
174+ namespace TemperedDistribution
175+
172176variable [NormedAddCommGroup E] [NormedAddCommGroup F] [NormedSpace ℝ E] [NormedSpace ℂ F]
173177
174178variable {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+
188195open LineDeriv
189196
190197@[fun_prop]
191198theorem 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]
207214theorem _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+
221231open LineDeriv
222232
223233theorem 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
246256end 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+
248332end Distribution
0 commit comments