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

MeasureTheory.setLIntegral_Ioo_rpow

Carleson.ToMathlib.Analysis.SpecialFunctions.Integrals.Basic · Carleson/ToMathlib/Analysis/SpecialFunctions/Integrals/Basic.lean:14 to 75

Mathematical statement

Exact Lean statement

theorem setLIntegral_Ioo_rpow {p : ℝ} {a b : ℝ≥0∞} (hp : -1 < p) :
    ∫⁻ (t : ℝ≥0∞) in Set.Ioo a b, t ^ p = (b ^ (p + 1) - a ^ (p + 1)) / ENNReal.ofReal (p + 1)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem setLIntegral_Ioo_rpow {p : } {a b : 0∞} (hp : -1 < p) :    ∫⁻ (t : 0∞) in Set.Ioo a b, t ^ p = (b ^ (p + 1) - a ^ (p + 1)) / ENNReal.ofReal (p + 1) := by  have hp' : 0 < p + 1 := by linarith  by_cases! a_le_b : a  b  rotate_left  · rw [Set.Ioo_eq_empty_of_le a_le_b.le]    simp only [Measure.restrict_empty, lintegral_zero_measure]    symm    rw [ENNReal.div_eq_zero_iff]    left    apply tsub_eq_zero_of_le    gcongr  rw [ lintegral_indicator measurableSet_Ioo, lintegral_ennreal_eq_lintegral_Ioi_ofReal]  simp_rw [ Set.indicator_comp_right]  rw [setLIntegral_indicator (by measurability), ENNReal.ofReal_Ioo_eq]  simp only [Function.comp_apply]  split_ifs with ha hab  · rw [ha, ENNReal.top_rpow_of_pos hp', ENNReal.sub_top, ENNReal.zero_div]    simp  · rw [Set.Ioi_inter_Ioi, max_eq_left (by simp), hab.2, ENNReal.top_rpow_of_pos hp',      ENNReal.top_sub (ENNReal.rpow_ne_top_of_nonneg hp'.le ha),      ENNReal.top_div_of_ne_top ENNReal.ofReal_ne_top]    calc _      _ = ∫⁻ (a : ) in Set.Ioi a.toReal, ENNReal.ofReal (a ^ p) := by        apply setLIntegral_congr_fun measurableSet_Ioi        intro x hx        apply ENNReal.ofReal_rpow_of_pos (ENNReal.toReal_nonneg.trans_lt hx)    have := not_integrableOn_Ioi_rpow' (@ENNReal.toReal_nonneg a) hp.le    contrapose! this    constructor    · fun_prop    rwa [hasFiniteIntegral_iff_ofReal, lt_top_iff_ne_top]    filter_upwards [self_mem_ae_restrict measurableSet_Ioi] with x hx    exact Real.rpow_nonneg (ENNReal.toReal_nonneg.trans hx.le) p  · simp only [not_and] at hab    have hb := hab a_le_b    have a_le_b' := (ENNReal.toReal_le_toReal ha (hab a_le_b)).mpr a_le_b    rw [Set.Ioo_inter_Ioi, max_eq_left (by simp)]    have : ∫ (x : ) in a.toReal..b.toReal, x ^ p = (b.toReal ^ (p + 1) - a.toReal ^ (p + 1)) / (p + 1) := by      apply integral_rpow      left      exact hp    unfold intervalIntegral at this    rw [Set.Ioc_eq_empty_of_le a_le_b', integral_Ioc_eq_integral_Ioo] at this    simp only [Measure.restrict_empty, integral_zero_measure, sub_zero] at this    calc _      _ = ∫⁻ (a : ) in Set.Ioo a.toReal b.toReal, ENNReal.ofReal (a ^ p) := by        apply setLIntegral_congr_fun measurableSet_Ioo        intro x hx        apply ENNReal.ofReal_rpow_of_pos (ENNReal.toReal_nonneg.trans_lt hx.1)    rw [ ofReal_integral_eq_lintegral_ofReal, this]    rotate_left    · rw [ IntegrableOn,  intervalIntegrable_iff_integrableOn_Ioo_of_le a_le_b']      exact intervalIntegral.intervalIntegrable_rpow' hp    · filter_upwards [self_mem_ae_restrict measurableSet_Ioo] with x hx      exact Real.rpow_nonneg (ENNReal.toReal_nonneg.trans hx.1.le) p    rw [ENNReal.ofReal_div_of_pos hp']    congr    rw [ENNReal.ofReal_sub _ (Real.rpow_nonneg ENNReal.toReal_nonneg _),       ENNReal.ofReal_rpow_of_nonneg ENNReal.toReal_nonneg hp'.le,       ENNReal.ofReal_rpow_of_nonneg ENNReal.toReal_nonneg hp'.le,      ENNReal.ofReal_toReal ha, ENNReal.ofReal_toReal hb]