@@ -6,7 +6,10 @@ Authors: Jakob Stiefel, Rémy Degenne, Thomas Zhu
66import Mathlib.Analysis.Fourier.BoundedContinuousFunctionChar
77import Mathlib.Analysis.Fourier.FourierTransform
88import Mathlib.Analysis.InnerProductSpace.Dual
9+ import Mathlib.Analysis.InnerProductSpace.ProdL2
10+ import Mathlib.Analysis.Normed.Lp.MeasurableSpace
911import Mathlib.MeasureTheory.Group.IntegralConvolution
12+ import Mathlib.MeasureTheory.Integral.Pi
1013import Mathlib.MeasureTheory.Measure.FiniteMeasureExt
1114
1215/-!
@@ -47,6 +50,9 @@ and `L`.
4750 -/
4851
4952open BoundedContinuousFunction RealInnerProductSpace Real Complex ComplexConjugate NormedSpace
53+ WithLp
54+
55+ open scoped ENNReal
5056
5157namespace BoundedContinuousFunction
5258
@@ -242,6 +248,65 @@ lemma charFun_conv [IsFiniteMeasure μ] [IsFiniteMeasure ν] (t : E) :
242248 · simp [inner_add_left, add_mul, Complex.exp_add, integral_const_mul, integral_mul_const]
243249 · exact (integrable_const (1 : ℝ)).mono (by fun_prop) (by simp)
244250
251+ variable {E F : Type *} [NormedAddCommGroup E] [NormedAddCommGroup F]
252+ [InnerProductSpace ℝ E] [InnerProductSpace ℝ F] {mE : MeasurableSpace E}
253+ {mF : MeasurableSpace F}
254+
255+ /-- The characteristic function of a product of measures is a product of
256+ characteristic functions. This is the version for Hilbert spaces, see `charFunDual_prod`
257+ for the Banach space version. -/
258+ lemma charFun_prod {μ : Measure E} {ν : Measure F} [SFinite μ] [SFinite ν]
259+ (t : WithLp 2 (E × F)) :
260+ charFun ((μ.prod ν).map (toLp 2 )) t =
261+ charFun μ (ofLp t).1 * charFun ν (ofLp t).2 := by
262+ simp_rw [charFun, prod_inner_apply, ← MeasurableEquiv.coe_toLp, ← integral_prod_mul,
263+ integral_map_equiv]
264+ simp [ofReal_add, add_mul, Complex.exp_add]
265+
266+ variable [CompleteSpace E] [CompleteSpace F] [SecondCountableTopology E] [SecondCountableTopology F]
267+ [BorelSpace E] [BorelSpace F]
268+
269+ /-- The characteristic function of a measure is a product of
270+ characteristic functions if and only if it is a product measure.
271+ This is the version for Hilbert spaces, see `charFunDual_eq_prod_iff`
272+ for the Banach space version. -/
273+ lemma charFun_eq_prod_iff {μ : Measure E} {ν : Measure F} {ξ : Measure (E × F)}
274+ [IsFiniteMeasure μ] [IsFiniteMeasure ν] [IsFiniteMeasure ξ] :
275+ (∀ t, charFun (ξ.map (toLp 2 )) t = charFun μ (ofLp t).1 * charFun ν (ofLp t).2 ) ↔
276+ ξ = μ.prod ν where
277+ mp h := by
278+ refine (MeasurableEquiv.toLp 2 (E × F)).map_measurableEquiv_injective
279+ <| Measure.ext_of_charFun <| funext fun t ↦ ?_
280+ rw [MeasurableEquiv.coe_toLp, h, charFun_prod]
281+ mpr h := by rw [h]; exact charFun_prod
282+
283+ variable {ι : Type *} [Fintype ι] {E : ι → Type *} [∀ i, NormedAddCommGroup (E i)]
284+ [∀ i, InnerProductSpace ℝ (E i)] {mE : ∀ i, MeasurableSpace (E i)}
285+
286+ /-- The characteristic function of a product of measures is a product of
287+ characteristic functions. This is the version for Hilbert spaces, see `charFunDual_pi`
288+ for the Banach space version. -/
289+ lemma charFun_pi {μ : (i : ι) → Measure (E i)} [∀ i, SigmaFinite (μ i)] (t : PiLp 2 E) :
290+ charFun ((Measure.pi μ).map (toLp 2 )) t = ∏ i, charFun (μ i) (t i) := by
291+ simp_rw [charFun, PiLp.inner_apply, ← MeasurableEquiv.coe_toLp, ← integral_fintype_prod_eq_prod,
292+ integral_map_equiv]
293+ simp [ofReal_sum, Finset.sum_mul, Complex.exp_sum]
294+
295+ variable [∀ i, CompleteSpace (E i)] [∀ i, SecondCountableTopology (E i)] [∀ i, BorelSpace (E i)]
296+
297+ /-- The characteristic function of a measure is a product of
298+ characteristic functions if and only if it is a product measure.
299+ This is the version for Hilbert spaces, see `charFunDual_eq_pi_iff`
300+ for the Banach space version. -/
301+ lemma charFun_eq_pi_iff {μ : (i : ι) → Measure (E i)} {ν : Measure (Π i, E i)}
302+ [∀ i, IsFiniteMeasure (μ i)] [IsFiniteMeasure ν] :
303+ (∀ t, charFun (ν.map (toLp 2 )) t = ∏ i, charFun (μ i) (t i)) ↔ ν = Measure.pi μ where
304+ mp h := by
305+ refine (MeasurableEquiv.toLp 2 (Π i, E i)).map_measurableEquiv_injective
306+ <| Measure.ext_of_charFun <| funext fun t ↦ ?_
307+ rw [MeasurableEquiv.coe_toLp, h, charFun_pi]
308+ mpr h := by rw [h]; exact charFun_pi
309+
245310end InnerProductSpace
246311
247312section NormedSpace
@@ -310,15 +375,56 @@ lemma charFunDual_map_const_add [BorelSpace E] (r : E) (L : StrongDual ℝ E) :
310375 exact charFunDual_map_add_const _ _
311376
312377/-- The characteristic function of a product of measures is a product of
313- characteristic functions. -/
378+ characteristic functions. This is the version for Banach spaces, see `charFun_prod`
379+ for the Hilbert space version. -/
314380lemma charFunDual_prod [SFinite μ] [SFinite ν] (L : StrongDual ℝ (E × F)) :
315381 charFunDual (μ.prod ν) L
316382 = charFunDual μ (L.comp (.inl ℝ E F)) * charFunDual ν (L.comp (.inr ℝ E F)) := by
317- let L₁ : StrongDual ℝ E := L.comp (.inl ℝ E F)
318- let L₂ : StrongDual ℝ F := L.comp (.inr ℝ E F)
319383 simp_rw [charFunDual_apply, ← L.comp_inl_add_comp_inr, ofReal_add, add_mul,
320- Complex.exp_add]
321- rw [integral_prod_mul (f := fun x ↦ cexp ((L₁ x * I))) (g := fun x ↦ cexp ((L₂ x * I)))]
384+ Complex.exp_add, ← integral_prod_mul]
385+
386+ /-- The characteristic function of a product of measures is a product of
387+ characteristic functions. This is `charFunDual_prod` for `WithLp`.
388+ See `charFun_prod` for the Hilbert space version. -/
389+ lemma charFunDual_prod' (p : ℝ≥0 ∞) [Fact (1 ≤ p)] [SFinite μ] [SFinite ν]
390+ (L : StrongDual ℝ (WithLp p (E × F))) :
391+ charFunDual ((μ.prod ν).map (toLp p)) L =
392+ charFunDual μ (L.comp
393+ ((prodContinuousLinearEquiv p ℝ E F).symm.toContinuousLinearMap.comp
394+ (.inl ℝ E F))) *
395+ charFunDual ν (L.comp
396+ ((prodContinuousLinearEquiv p ℝ E F).symm.toContinuousLinearMap.comp
397+ (.inr ℝ E F))) := by
398+ simp_rw [charFunDual_apply, ← integral_prod_mul, ← Complex.exp_add, ← add_mul, ← ofReal_add,
399+ L.comp_apply, ← map_add, ContinuousLinearMap.comp_inl_add_comp_inr]
400+ rw [← MeasurableEquiv.coe_toLp, integral_map_equiv]
401+ simp
402+
403+ /-- The characteristic function of a product of measures is a product of
404+ characteristic functions. This is the version for Banach spaces, see `charFunDual_pi`
405+ for the Hilbert space version. -/
406+ lemma charFunDual_pi {ι : Type *} [Fintype ι] [DecidableEq ι] {E : ι → Type *}
407+ [∀ i, NormedAddCommGroup (E i)] [∀ i, NormedSpace ℝ (E i)] {mE : ∀ i, MeasurableSpace (E i)}
408+ {μ : (i : ι) → Measure (E i)} [∀ i, SigmaFinite (μ i)] (L : StrongDual ℝ (Π i, E i)) :
409+ charFunDual (Measure.pi μ) L =
410+ ∏ i, charFunDual (μ i) (L.comp (.single ℝ E i)) := by
411+ simp_rw [charFunDual_apply, ← L.sum_comp_single, ofReal_sum, Finset.sum_mul, Complex.exp_sum,
412+ ← integral_fintype_prod_eq_prod]
413+
414+ /-- The characteristic function of a product of measures is a product of
415+ characteristic functions. This is `charFunDual_pi` for `PiLp`.
416+ See `charFunDual_pi` for the Banach space version. -/
417+ lemma charFunDual_pi' (p : ℝ≥0 ∞) [Fact (1 ≤ p)] {ι : Type *} [Fintype ι] [DecidableEq ι]
418+ {E : ι → Type *} [∀ i, NormedAddCommGroup (E i)] [∀ i, NormedSpace ℝ (E i)]
419+ {mE : ∀ i, MeasurableSpace (E i)} {μ : (i : ι) → Measure (E i)} [∀ i, SigmaFinite (μ i)]
420+ (L : StrongDual ℝ (PiLp p E)) :
421+ charFunDual ((Measure.pi μ).map (toLp p)) L =
422+ ∏ i, charFunDual (μ i) (L.comp
423+ ((PiLp.continuousLinearEquiv p ℝ E).symm.toContinuousLinearMap.comp (.single ℝ E i))) := by
424+ simp_rw [charFunDual_apply, ← integral_fintype_prod_eq_prod, ← Complex.exp_sum, ← Finset.sum_mul,
425+ ← ofReal_sum, L.comp_apply, ← map_sum, ContinuousLinearMap.sum_comp_single]
426+ rw [← MeasurableEquiv.coe_toLp, integral_map_equiv]
427+ simp
322428
323429variable [BorelSpace E] [SecondCountableTopology E]
324430
@@ -337,6 +443,77 @@ theorem Measure.ext_of_charFunDual [CompleteSpace E]
337443 exact hv (NormedSpace.eq_zero_of_forall_dual_eq_zero _ h)
338444 · exact isBoundedBilinearMap_apply.symm.continuous
339445
446+ /-- The characteristic function of a measure is a product of
447+ characteristic functions if and only if it is a product measure.
448+ This is the version for Banach spaces, see `charFun_eq_prod_iff`
449+ for the Hilbert space version. -/
450+ lemma charFunDual_eq_prod_iff [BorelSpace F] [SecondCountableTopology F] [CompleteSpace E]
451+ [CompleteSpace F] {ξ : Measure (E × F)} [IsFiniteMeasure μ] [IsFiniteMeasure ν]
452+ [IsFiniteMeasure ξ] :
453+ (∀ L, charFunDual ξ L =
454+ charFunDual μ (L.comp (.inl ℝ E F)) * charFunDual ν (L.comp (.inr ℝ E F))) ↔
455+ ξ = μ.prod ν where
456+ mp h := by
457+ refine Measure.ext_of_charFunDual <| funext fun t ↦ ?_
458+ rw [h, charFunDual_prod]
459+ mpr h := by rw [h]; exact charFunDual_prod
460+
461+ /-- The characteristic function of a measure is a product of
462+ characteristic functions if and only if it is a product measure.
463+ This is `charFunDual_eq_prod_iff` for `WithLp`.
464+ See `charFun_eq_prod_iff` for the Hilbert space version. -/
465+ lemma charFunDual_eq_prod_iff' (p : ℝ≥0 ∞) [Fact (1 ≤ p)] [BorelSpace F]
466+ [SecondCountableTopology F] [CompleteSpace E] [CompleteSpace F] {ξ : Measure (E × F)}
467+ [IsFiniteMeasure μ] [IsFiniteMeasure ν] [IsFiniteMeasure ξ] :
468+ (∀ L, charFunDual (ξ.map (toLp p)) L =
469+ charFunDual μ (L.comp
470+ ((WithLp.prodContinuousLinearEquiv p ℝ E F).symm.toContinuousLinearMap.comp
471+ (.inl ℝ E F))) *
472+ charFunDual ν (L.comp
473+ ((WithLp.prodContinuousLinearEquiv p ℝ E F).symm.toContinuousLinearMap.comp
474+ (.inr ℝ E F)))) ↔
475+ ξ = μ.prod ν where
476+ mp h := by
477+ refine (MeasurableEquiv.toLp p (E × F)).map_measurableEquiv_injective
478+ <| Measure.ext_of_charFunDual <| funext fun L ↦ ?_
479+ rw [MeasurableEquiv.coe_toLp, h, charFunDual_prod']
480+ mpr h := by rw [h]; exact charFunDual_prod' p
481+
482+ /-- The characteristic function of a measure is a product of
483+ characteristic functions if and only if it is a product measure.
484+ This is the version for Banach spaces, see `charFun_eq_pi_iff`
485+ for the Hilbert space version. -/
486+ lemma charFunDual_eq_pi_iff {ι : Type *} [Fintype ι] [DecidableEq ι] {E : ι → Type *}
487+ [∀ i, NormedAddCommGroup (E i)] [∀ i, NormedSpace ℝ (E i)] {mE : ∀ i, MeasurableSpace (E i)}
488+ [∀ i, BorelSpace (E i)] [∀ i, SecondCountableTopology (E i)] [∀ i, CompleteSpace (E i)]
489+ {μ : (i : ι) → Measure (E i)} {ν : Measure (Π i, E i)} [∀ i, IsFiniteMeasure (μ i)]
490+ [IsFiniteMeasure ν] :
491+ (∀ L, charFunDual ν L = ∏ i, charFunDual (μ i) (L.comp (.single ℝ E i))) ↔
492+ ν = Measure.pi μ where
493+ mp h := by
494+ refine Measure.ext_of_charFunDual <| funext fun t ↦ ?_
495+ rw [h, charFunDual_pi]
496+ mpr h := by rw [h]; exact charFunDual_pi
497+
498+ /-- The characteristic function of a measure is a product of
499+ characteristic functions if and only if it is a product measure.
500+ This is `charFunDual_eq_pi_iff` for `PiLp`.
501+ See `charFun_eq_pi_iff` for the Hilbert space version. -/
502+ lemma charFunDual_eq_pi_iff' (p : ℝ≥0 ∞) [Fact (1 ≤ p)] {ι : Type *} [Fintype ι] [DecidableEq ι]
503+ {E : ι → Type *} [∀ i, NormedAddCommGroup (E i)] [∀ i, NormedSpace ℝ (E i)]
504+ {mE : ∀ i, MeasurableSpace (E i)} [∀ i, BorelSpace (E i)] [∀ i, SecondCountableTopology (E i)]
505+ [∀ i, CompleteSpace (E i)] {μ : (i : ι) → Measure (E i)} {ν : Measure (Π i, E i)}
506+ [∀ i, IsFiniteMeasure (μ i)] [IsFiniteMeasure ν] :
507+ (∀ L, charFunDual (ν.map (toLp p)) L =
508+ ∏ i, charFunDual (μ i) (L.comp
509+ ((PiLp.continuousLinearEquiv p ℝ E).symm.toContinuousLinearMap.comp (.single ℝ E i)))) ↔
510+ ν = Measure.pi μ where
511+ mp h := by
512+ refine (MeasurableEquiv.toLp p (Π i, E i)).map_measurableEquiv_injective
513+ <| Measure.ext_of_charFunDual <| funext fun L ↦ ?_
514+ rw [MeasurableEquiv.coe_toLp, h, charFunDual_pi']
515+ mpr h := by rw [h]; exact charFunDual_pi' p
516+
340517/-- The characteristic function of a convolution of measures
341518is the product of the respective characteristic functions. -/
342519lemma charFunDual_conv {μ ν : Measure E} [IsFiniteMeasure μ] [IsFiniteMeasure ν]
0 commit comments