Skip to main content
fpvandoorn/carleson
Source indexedlemma · leanprover/lean4:v4.32.0

MeasureTheory.lintegral_norm_pow_eq_distribution

Carleson.ToMathlib.WeakType · Carleson/ToMathlib/WeakType.lean:797 to 861

Source documentation

The layer-cake theorem, or Cavalieri's principle for functions into a space with a continuous enorm.

Exact Lean statement

lemma lintegral_norm_pow_eq_distribution {f : α → ε} (hf : AEStronglyMeasurable f μ) {p : ℝ} (hp : 0 < p) :
    ∫⁻ x, ‖f x‖ₑ ^ p ∂μ =
    ∫⁻ t in Ioi (0 : ℝ), ENNReal.ofReal (p * t ^ (p - 1)) * distribution f (.ofReal t) μ

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma lintegral_norm_pow_eq_distribution {f : α  ε} (hf : AEStronglyMeasurable f μ) {p : } (hp : 0 < p) :    ∫⁻ x, ‖f x‖ₑ ^ p ∂μ =    ∫⁻ t in Ioi (0 : ), ENNReal.ofReal (p * t ^ (p - 1)) * distribution f (.ofReal t) μ := by  have := lintegral_rpow_eq_lintegral_meas_lt_mul μ (f := fun x  ENNReal.toReal ‖f x‖ₑ)    (Eventually.of_forall fun x  ENNReal.toReal_nonneg) hf.enorm.ennreal_toReal hp  simp only [mul_comm (μ _), ne_eq, ofReal_ne_top, not_false_eq_true,  lintegral_const_mul',     mul_assoc, ofReal_mul, distribution, hp.le] at this   -- TODO: clean up this whole proof  by_cases! ae_finite : μ {x | ‖f x‖ₑ = ∞} = 0  · -- main case    convert this using 1    · apply lintegral_congr_ae      rw [Filter.eventuallyEq_iff_exists_mem]      use {x | ‖f x‖ₑ  ∞}      rw [mem_ae_iff, compl_setOf]      simp only [ne_eq, Decidable.not_not]      use ae_finite      intro x hx      dsimp only      rw [toReal_rpow, ofReal_toReal (by finiteness)]    apply setLIntegral_congr_fun measurableSet_Ioi    intro t ht    dsimp only    congr 1    symm    apply measure_eq_measure_of_null_sdiff    · intro x hx      simp only [mem_setOf_eq] at *      rwa [ofReal_lt_iff_lt_toReal ht.le]      by_contra hfx      rw [hfx] at hx      simp only [toReal_top] at hx      linarith [hx, mem_Ioi.mp ht]    dsimp [sdiff, Set.diff]    apply measure_mono_null _ ae_finite    intro x hx    dsimp only [mem_setOf_eq] at *    by_contra hf_top    rw [ofReal_lt_iff_lt_toReal ht.le hf_top] at hx    exact hx.2 hx.1  · rw [lintegral_eq_top_of_measure_eq_top_ne_zero]    · symm      rw [ enorm_pos] at ae_finite      rw [eq_top_iff]      calc      _ = ENNReal.ofReal p *          (∫⁻ (t : ) in Ioi 0, ENNReal.ofReal (t ^ (p - 1))) * μ {x | ‖f x‖ₑ = ∞} := by        convert! (top_mul ae_finite.ne').symm        convert mul_top (ENNReal.ofReal_pos.mpr hp).ne'        rw [ not_ne_iff, lintegral_ofReal_ne_top_iff_integrable]; rotate_left        · exact (measurable_id.pow_const (p - 1)).aestronglyMeasurable.restrict        · refine ae_restrict_of_forall_mem measurableSet_Ioi fun x mx  ?_          simp_rw [Pi.zero_apply]; rw [mem_Ioi] at mx; positivity        exact not_integrableOn_Ioi_rpow (p - 1)      _ = ∫⁻ (t : ) in Ioi 0, ENNReal.ofReal p * ENNReal.ofReal (t ^ (p - 1))            * μ {x | ‖f x‖ₑ = ∞} := by        rw [lintegral_mul_const, lintegral_const_mul] <;> fun_prop      _  ∫⁻ (t : ) in Ioi 0, ENNReal.ofReal p * ENNReal.ofReal (t ^ (p - 1))            * μ {x | ENNReal.ofReal t < ‖f x‖ₑ} := by        gcongr with t x        intro hfx        simp [hfx]    · fun_prop    · simp_rw [rpow_eq_top_iff_of_pos hp]      exact ae_finite