Skip to content

Commit 51b487c

Browse files
dupuisfxroblot
authored andcommitted
feat(ContinuousFunctionalCalculus): add integral representation for x ↦ x ^ p for p ∈ (1, 2) (leanprover-community#37612)
This PR adds an integral representation for the function `x ↦ x ^ p` for `p ∈ (1, 2)`. We already have an analogous representation for `p ∈ (0, 1)`. This will later be used to show that this function is operator convex in that range.
1 parent 1c742e0 commit 51b487c

1 file changed

Lines changed: 149 additions & 6 deletions

File tree

Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean

Lines changed: 149 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,17 @@ relevant in applications, and would needlessly complicate the proof.
3232
## Main declarations
3333
3434
+ `rpowIntegrand₀₁ p t x := t ^ p * (t⁻¹ - (t + x)⁻¹)`
35-
+ `exists_measure_rpow_eq_integral`: there exists a measure on `ℝ` such that
36-
`x ^ p = ∫ t, rpowIntegrand₀₁ p t x ∂μ`
37-
+ `CFC.exists_measure_nnrpow_eq_integral_cfcₙ_rpowIntegrand₀₁`: the corresponding statement where
35+
+ `rpowIntegrand₁₂ p t x := t ^ (p - 1) * (x * t⁻¹ + t * (t + x)⁻¹ - 1)`
36+
+ `exists_measure_rpow_eq_integral_rpowIntegrand₀₁` and
37+
`exists_measure_rpow_eq_integral_rpowIntegrand₁₂`: there exists a measure on `ℝ` such that
38+
`x ^ p = ∫ t, rpowIntegrand₀₁ p t x ∂μ` (resp `x ^ p = ∫ t, rpowIntegrand₁₂ p t x ∂μ`)
39+
+ `CFC.exists_measure_nnrpow_eq_integral_cfcₙ_rpowIntegrand₀₁` and
40+
`CFC.exists_measure_nnrpow_eq_integral_cfcₙ_rpowIntegrand₁₂`: the corresponding statements where
3841
`x ^ p` is defined via the CFC.
3942
4043
## TODO
4144
42-
+ Give analogous representations for the ranges `Ioo (-1) 0` and `Ioo 1 2`.
45+
+ Give analogous representations for the range `Ioo (-1) 0`.
4346
4447
## References
4548
@@ -57,6 +60,14 @@ namespace Real
5760
/-- Integrand for representing `x ↦ x ^ p` for `p ∈ (0,1)` -/
5861
noncomputable def rpowIntegrand₀₁ (p t x : ℝ) : ℝ := t ^ p * (t⁻¹ - (t + x)⁻¹)
5962

63+
/-- Integrand for representing `x ↦ x^p` for `p ∈ (1,2)` -/
64+
noncomputable def rpowIntegrand₁₂ (p t x : ℝ) : ℝ := t ^ (p - 1) * (t⁻¹ * x + t * (t + x)⁻¹ - 1)
65+
66+
section ZeroOne
67+
/-
68+
## `p ∈ (0,1)`
69+
-/
70+
6071
variable {p t x : ℝ}
6172

6273
@[simp]
@@ -327,7 +338,7 @@ lemma rpow_eq_const_mul_integral (hp : p ∈ Ioo 0 1) (hx : 0 ≤ x) :
327338
this, mul_one]
328339

329340
/-- The integral representation of the function `x ↦ x ^ p` (where `p ∈ (0, 1)`) . -/
330-
lemma exists_measure_rpow_eq_integral (hp : p ∈ Ioo 0 1) :
341+
lemma exists_measure_rpow_eq_integral_rpowIntegrand₀₁ (hp : p ∈ Ioo 0 1) :
331342
∃ μ : Measure ℝ, ∀ x ∈ Ici 0,
332343
(IntegrableOn (fun t => rpowIntegrand₀₁ p t x) (Ioi 0) μ)
333344
∧ x ^ p = ∫ t in Ioi 0, rpowIntegrand₀₁ p t x ∂μ := by
@@ -340,6 +351,90 @@ lemma exists_measure_rpow_eq_integral (hp : p ∈ Ioo 0 1) :
340351
· simp_rw [Measure.restrict_smul, integral_smul_nnreal_measure, rpow_eq_const_mul_integral hp hx,
341352
NNReal.smul_def, C, NNReal.coe_mk, smul_eq_mul]
342353

354+
@[deprecated (since := "2026-04-03")]
355+
alias exists_measure_rpow_eq_integral := exists_measure_rpow_eq_integral_rpowIntegrand₀₁
356+
357+
end ZeroOne
358+
359+
section OneTwo
360+
/-
361+
## `p ∈ (1,2)`
362+
-/
363+
variable {p t x : ℝ}
364+
365+
lemma rpowIntegrand₁₂_eq_mul_rpowIntegrand₀₁ (hx : 0 ≤ x) (ht : 0 < t) :
366+
rpowIntegrand₁₂ p t x = x * rpowIntegrand₀₁ (p - 1) t x := by
367+
grind [rpowIntegrand₁₂, rpowIntegrand₀₁]
368+
369+
lemma rpowIntegrand₁₂_nonneg (hp : 1 < p) (ht : 0 ≤ t) (hx : 0 ≤ x) :
370+
0 ≤ rpowIntegrand₁₂ p t x := by
371+
by_cases ht' : 0 < t
372+
· rw [rpowIntegrand₁₂_eq_mul_rpowIntegrand₀₁ hx ht']
373+
refine mul_nonneg hx ?_
374+
exact rpowIntegrand₀₁_nonneg (by grind) (by grind) hx
375+
· have ht' : t = 0 := by grind
376+
simp [rpowIntegrand₁₂, ht', zero_rpow (by grind : p - 10)]
377+
378+
lemma rpowIntegrand₁₂_zero (ht : 0 < t) :
379+
rpowIntegrand₁₂ p t 0 = 0 := by grind [rpowIntegrand₁₂]
380+
381+
@[fun_prop]
382+
lemma continuousOn_rpowIntegrand₁₂_uncurry (hp : p ∈ Ioi 1) (s : Set ℝ) (hs : s ⊆ Ici 0) :
383+
ContinuousOn (rpowIntegrand₁₂ p).uncurry (Ioi 0 ×ˢ s) := by
384+
unfold rpowIntegrand₁₂
385+
fun_prop (disch := grind)
386+
387+
lemma monotoneOn_rpowIntegrand₁₂ (hp : p ∈ Ioo 1 2) (ht : 0 < t) :
388+
MonotoneOn (rpowIntegrand₁₂ p t) (Ici 0) := by
389+
refine MonotoneOn.congr ?_ fun x hx ↦ (rpowIntegrand₁₂_eq_mul_rpowIntegrand₀₁ hx ht).symm
390+
apply monotoneOn_id.mul <;> grind [rpowIntegrand₀₁_monotoneOn, rpowIntegrand₀₁_nonneg]
391+
392+
lemma integrableOn_rpowIntegrand₁₂ (hp : p ∈ Ioo 1 2) (hx : 0 ≤ x) :
393+
IntegrableOn (rpowIntegrand₁₂ p · x) (Ioi 0) := by
394+
have hmain : (rpowIntegrand₁₂ p · x)
395+
=ᵐ[volume.restrict (Ioi 0)] (x * rpowIntegrand₀₁ (p-1) · x) := by
396+
filter_upwards [ae_restrict_mem measurableSet_Ioi] with a ha
397+
rw [rpowIntegrand₁₂_eq_mul_rpowIntegrand₀₁ hx ha]
398+
rw [integrableOn_congr_fun_ae hmain]
399+
refine Integrable.const_mul ?_ _
400+
exact integrableOn_rpowIntegrand₀₁_Ioi (by grind) hx
401+
402+
/-- The integral representation of the function `x ↦ x^p` (where `p ∈ (1, 2)`) . -/
403+
lemma rpow_eq_const_mul_integral_rpowIntegrand₁₂ (hp : p ∈ Ioo 1 2) (hx : 0 ≤ x) :
404+
x ^ p
405+
= (∫ t in Ioi 0, rpowIntegrand₀₁ (p - 1) t 1)⁻¹ * ∫ t in Ioi 0, rpowIntegrand₁₂ p t x := by
406+
have hmain : (rpowIntegrand₁₂ p · x)
407+
=ᵐ[volume.restrict (Ioi 0)] (x * rpowIntegrand₀₁ (p-1) · x) := by
408+
filter_upwards [ae_restrict_mem measurableSet_Ioi] with a ha
409+
rw [rpowIntegrand₁₂_eq_mul_rpowIntegrand₀₁ hx ha]
410+
rw [integral_congr_ae hmain, integral_const_mul_of_integrable
411+
(integrableOn_rpowIntegrand₀₁_Ioi (by grind) hx)]
412+
have h₁ : x ^ p = x * x ^ (p - 1) := by
413+
rw [mul_comm, ← rpow_add_one' hx (by grind)]
414+
simp
415+
rw [h₁, rpow_eq_const_mul_integral (by grind) hx]
416+
grind
417+
418+
/-- The integral representation of the function `x ↦ x^p` (where `p ∈ (1, 2)`) . -/
419+
lemma exists_measure_rpow_eq_integral_rpowIntegrand₁₂ (hp : p ∈ Ioo 1 2) :
420+
∃ μ : Measure ℝ, ∀ x ∈ Ici 0,
421+
(IntegrableOn (fun t => rpowIntegrand₁₂ p t x) (Ioi 0) μ)
422+
∧ x ^ p = ∫ t in Ioi 0, rpowIntegrand₁₂ p t x ∂μ := by
423+
let C : ℝ≥0 := .mk
424+
(∫ t in Ioi 0, rpowIntegrand₀₁ (p - 1) t 1)⁻¹ <| by
425+
rw [inv_nonneg]
426+
exact le_of_lt <| integral_rpowIntegrand₀₁_one_pos (by grind)
427+
let μ : Measure ℝ := C • volume
428+
refine ⟨μ, fun x hx => ⟨?_, ?_⟩⟩
429+
· unfold μ IntegrableOn
430+
rw [Measure.restrict_smul]
431+
exact Integrable.smul_measure_nnreal <| integrableOn_rpowIntegrand₁₂ hp hx
432+
· rw [Measure.restrict_smul, integral_smul_nnreal_measure,
433+
rpow_eq_const_mul_integral_rpowIntegrand₁₂ hp hx]
434+
simp [C, NNReal.smul_def]
435+
436+
end OneTwo
437+
343438
end Real
344439

345440
namespace CFC
@@ -380,7 +475,7 @@ lemma exists_measure_nnrpow_eq_integral_cfcₙ_rpowIntegrand₀₁ [CompleteSpac
380475
∃ μ : Measure ℝ, ∀ a ∈ Ici (0 : A),
381476
(IntegrableOn (fun t => cfcₙ (rpowIntegrand₀₁ p t) a) (Ioi 0) μ)
382477
∧ a ^ p = ∫ t in Ioi 0, cfcₙ (rpowIntegrand₀₁ p t) a ∂μ := by
383-
obtain ⟨μ, hμ⟩ := exists_measure_rpow_eq_integral hp
478+
obtain ⟨μ, hμ⟩ := exists_measure_rpow_eq_integral_rpowIntegrand₀₁ hp
384479
refine ⟨μ, fun a (ha : 0 ≤ a) => ?_⟩
385480
nontriviality A
386481
have p_pos : 0 < (p : ℝ) := by exact_mod_cast hp.1
@@ -417,6 +512,54 @@ lemma exists_measure_nnrpow_eq_integral_cfcₙ_rpowIntegrand₀₁ [CompleteSpac
417512
_ = _ := cfcₙ_setIntegral measurableSet_Ioi _ bound a hf hmapzero hbound
418513
hbound_finite_integral ha.isSelfAdjoint
419514

515+
variable (A) in
516+
/-- The integral representation of the function `x ↦ x ^ p` (where `p ∈ (1, 2)`). -/
517+
lemma exists_measure_nnrpow_eq_integral_cfcₙ_rpowIntegrand₁₂ [CompleteSpace A] {p : ℝ≥0}
518+
(hp : p ∈ Ioo 1 2) :
519+
∃ μ : Measure ℝ, ∀ a ∈ Ici (0 : A),
520+
(IntegrableOn (fun t => cfcₙ (rpowIntegrand₁₂ p t) a) (Ioi 0) μ)
521+
∧ a ^ p = ∫ t in Ioi 0, cfcₙ (rpowIntegrand₁₂ p t) a ∂μ := by
522+
obtain ⟨μ, hμ⟩ := exists_measure_rpow_eq_integral_rpowIntegrand₁₂ hp
523+
refine ⟨μ, fun a (ha : 0 ≤ a) => ?_⟩
524+
have hpcoe : (p : ℝ) ∈ Ioo 1 2 := by exact_mod_cast hp
525+
let f t := rpowIntegrand₁₂ p t
526+
let maxr := sSup (quasispectrum ℝ a)
527+
have maxr_nonneg : 0 ≤ maxr :=
528+
le_csSup_of_le (b := 0) (IsCompact.bddAbove (quasispectrum.isCompact _)) (by simp) le_rfl
529+
let bound (t : ℝ) := ‖f t maxr‖
530+
have hf : ContinuousOn (Function.uncurry f) (Ioi (0 : ℝ) ×ˢ quasispectrum ℝ a) :=
531+
continuousOn_rpowIntegrand₁₂_uncurry hpcoe.1 (quasispectrum ℝ a) (by grind)
532+
have hbound : ∀ᵐ t ∂μ.restrict (Ioi 0), ∀ z ∈ quasispectrum ℝ a, ‖f t z‖ ≤ bound t := by
533+
filter_upwards [ae_restrict_mem measurableSet_Ioi] with t ht
534+
intro z hz
535+
have hz' : 0 ≤ z := by grind
536+
unfold bound f
537+
rw [Real.norm_of_nonneg (rpowIntegrand₁₂_nonneg (by grind) (by grind) hz'),
538+
Real.norm_of_nonneg (rpowIntegrand₁₂_nonneg (by grind) (by grind) maxr_nonneg)]
539+
refine monotoneOn_rpowIntegrand₁₂ (by grind) (by grind) hz' maxr_nonneg ?_
540+
exact le_csSup (IsCompact.bddAbove (quasispectrum.isCompact _)) hz
541+
have hbound_finite_integral : HasFiniteIntegral bound (μ.restrict (Ioi 0)) := by
542+
rw [hasFiniteIntegral_norm_iff]
543+
exact (hμ maxr maxr_nonneg).1.2
544+
have hmapzero : ∀ᵐ (x : ℝ) ∂μ.restrict (Ioi 0), rpowIntegrand₁₂ p x 0 = 0 := by
545+
filter_upwards [ae_restrict_mem measurableSet_Ioi] with t ht
546+
simp [rpowIntegrand₁₂_zero ht]
547+
refine ⟨?integrable, ?integral⟩
548+
case integrable =>
549+
exact integrableOn_cfcₙ measurableSet_Ioi _ bound a hf hmapzero hbound hbound_finite_integral
550+
case integral => calc
551+
a ^ p = cfcₙ (fun x => NNReal.nnrpow x p) a := by
552+
rw [CFC.nnrpow_def]
553+
_ = cfcₙ (fun r => ∫ t in Ioi 0, rpowIntegrand₁₂ p t r ∂μ) a := by
554+
rw [cfcₙ_nnreal_eq_real ..]
555+
refine cfcₙ_congr fun r hr => ?_
556+
have hr' : 0 ≤ r := by grind
557+
simp only [sup_of_le_left hr', NNReal.nnrpow_def, NNReal.coe_rpow, coe_toNNReal']
558+
exact (hμ r hr').2
559+
_ = ∫ t in Ioi 0, cfcₙ (rpowIntegrand₁₂ p t) a ∂μ :=
560+
cfcₙ_setIntegral measurableSet_Ioi _ bound a hf hmapzero hbound
561+
hbound_finite_integral ha.isSelfAdjoint
562+
420563
end NonUnitalCFC
421564

422565
section NonUnitalCStarAlgebra

0 commit comments

Comments
 (0)