@@ -5,13 +5,19 @@ Authors: Moritz Doll
55-/
66module
77
8- public import Mathlib.Analysis.LocallyConvex.WithSeminorms
8+ public import Mathlib.Analysis.Calculus.IteratedDeriv.Defs
9+ public import Mathlib.Analysis.Distribution.TemperateGrowth
910public import Mathlib.Analysis.Normed.Group.ZeroAtInfty
10- public import Mathlib.Analysis.Normed.Lp.SmoothApprox
1111public import Mathlib.Analysis.SpecialFunctions.Pow.Real
12- public import Mathlib.Analysis.Distribution.TemperateGrowth
13- public import Mathlib.Topology.Algebra.UniformFilterBasis
1412public import Mathlib.MeasureTheory.Function.L2Space
13+ public import Mathlib.Tactic.FunProp
14+ public import Mathlib.Topology.Algebra.UniformFilterBasis
15+
16+ import Mathlib.Analysis.Calculus.ContDiff.Bounds
17+ import Mathlib.Analysis.Calculus.ContDiff.Operations
18+ import Mathlib.Analysis.Normed.Lp.SmoothApprox
19+ import Mathlib.Tactic.MoveAdd
20+
1521
1622/-!
1723# Schwartz space
@@ -230,7 +236,7 @@ variable [NormedField 𝕜] [NormedSpace 𝕜 F] [SMulCommClass ℝ 𝕜 F] [Nor
230236instance instSMul : SMul 𝕜 𝓢(E, F) :=
231237 ⟨fun c f =>
232238 { toFun := c • (f : E → F)
233- smooth' := (f.smooth _).const_smul c
239+ smooth' := by exact (f.smooth _).const_smul c
234240 decay' k n := by
235241 use f.seminormAux k n * ‖c‖
236242 intro x
@@ -263,13 +269,13 @@ private theorem seminormAux_smul_le (k n : ℕ) (c : 𝕜) (f : 𝓢(E, F)) :
263269instance instNSMul : SMul ℕ 𝓢(E, F) :=
264270 ⟨fun c f =>
265271 { toFun := c • (f : E → F)
266- smooth' := (f.smooth _).const_smul c
272+ smooth' := by exact (f.smooth _).const_smul c
267273 decay' := by simpa [← Nat.cast_smul_eq_nsmul ℝ] using ((c : ℝ) • f).decay' }⟩
268274
269275instance instZSMul : SMul ℤ 𝓢(E, F) :=
270276 ⟨fun c f =>
271277 { toFun := c • (f : E → F)
272- smooth' := (f.smooth _).const_smul c
278+ smooth' := by exact (f.smooth _).const_smul c
273279 decay' := by simpa [← Int.cast_smul_eq_zsmul ℝ] using ((c : ℝ) • f).decay' }⟩
274280
275281end SMul
@@ -278,7 +284,7 @@ section Zero
278284
279285instance instZero : Zero 𝓢(E, F) :=
280286 ⟨{ toFun := fun _ => 0
281- smooth' := contDiff_const
287+ smooth' := by exact contDiff_const
282288 decay' := fun _ _ => ⟨1 , fun _ => by simp⟩ }⟩
283289
284290instance instInhabited : Inhabited 𝓢(E, F) :=
@@ -305,7 +311,7 @@ section Neg
305311
306312instance instNeg : Neg 𝓢(E, F) :=
307313 ⟨fun f =>
308- ⟨-f, (f.smooth _).neg, fun k n => by
314+ ⟨-f, by exact (f.smooth _).neg, fun k n => by
309315 use f.seminormAux k n
310316 intro x
311317 grw [f.decay_neg_aux k n x, f.le_seminormAux k n x]⟩⟩
@@ -319,7 +325,7 @@ section Add
319325
320326instance instAdd : Add 𝓢(E, F) :=
321327 ⟨fun f g =>
322- ⟨f + g, (f.smooth _).add (g.smooth _), fun k n => by
328+ ⟨f + g, by exact (f.smooth _).add (g.smooth _), fun k n => by
323329 use f.seminormAux k n + g.seminormAux k n
324330 intro x
325331 grw [decay_add_le_aux k n f g x, f.le_seminormAux k n x, g.le_seminormAux k n x]⟩⟩
@@ -341,7 +347,7 @@ section Sub
341347
342348instance instSub : Sub 𝓢(E, F) :=
343349 ⟨fun f g =>
344- ⟨f - g, (f.smooth _).sub (g.smooth _), by
350+ ⟨f - g, by exact (f.smooth _).sub (g.smooth _), by
345351 intro k n
346352 refine ⟨f.seminormAux k n + g.seminormAux k n, fun x => ?_⟩
347353 grw [← f.le_seminormAux k n x, ← g.le_seminormAux k n x]
@@ -681,11 +687,11 @@ variable [NormedSpace 𝕜 E] [NormedSpace 𝕜 G]
681687/-- The map `f ↦ (x ↦ B (f x) (g x))` as a continuous `𝕜`-linear map on Schwartz space,
682688where `B` is a continuous `𝕜`-linear map and `g` is a function of temperate growth. -/
683689def bilinLeftCLM (B : E →L[𝕜] F →L[𝕜] G) {g : D → F} (hg : g.HasTemperateGrowth) :
684- 𝓢(D, E) →L[𝕜] 𝓢(D, G) := by
685- refine mkCLM (fun f x => B (f x) (g x))
690+ 𝓢(D, E) →L[𝕜] 𝓢(D, G) :=
691+ mkCLM (fun f x => B (f x) (g x))
686692 (fun _ _ _ => by simp) (fun _ _ _ => by simp)
687693 (fun f => (B.bilinearRestrictScalars ℝ).isBoundedBilinearMap.contDiff.comp
688- ((f.smooth ⊤).prodMk hg.1 )) ?_
694+ ((f.smooth ⊤).prodMk hg.1 )) <| by
689695 rintro ⟨k, n⟩
690696 rcases hg.norm_iteratedFDeriv_le_uniform n with ⟨l, C, hC, hgrowth⟩
691697 use
@@ -917,9 +923,9 @@ variable [NormedSpace 𝕜 F]
917923/-- Composition with a function on the right is a continuous linear map on Schwartz space
918924provided that the function is temperate and growths polynomially near infinity. -/
919925def compCLM {g : D → E} (hg : g.HasTemperateGrowth)
920- (hg_upper : ∃ (k : ℕ) (C : ℝ), ∀ x, ‖x‖ ≤ C * (1 + ‖g x‖) ^ k) : 𝓢(E, F) →L[𝕜] 𝓢(D, F) := by
921- refine mkCLM (fun f => f ∘ g) (fun _ _ _ => by simp) (fun _ _ _ => rfl)
922- (fun f => (f.smooth ⊤).comp hg.1 ) ?_
926+ (hg_upper : ∃ (k : ℕ) (C : ℝ), ∀ x, ‖x‖ ≤ C * (1 + ‖g x‖) ^ k) : 𝓢(E, F) →L[𝕜] 𝓢(D, F) :=
927+ mkCLM (fun f => f ∘ g) (fun _ _ _ => by simp) (fun _ _ _ => rfl)
928+ (fun f => (f.smooth ⊤).comp hg.1 ) <| by
923929 rintro ⟨k, n⟩
924930 rcases hg.norm_iteratedFDeriv_le_uniform n with ⟨l, C, hC, hgrowth⟩
925931 rcases hg_upper with ⟨kg, Cg, hg_upper'⟩
0 commit comments