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

lintegral_antitone_mul_le

Carleson.ToMathlib.MeasureTheory.Integral.Misc · Carleson/ToMathlib/MeasureTheory/Integral/Misc.lean:13 to 104

Mathematical statement

Exact Lean statement

theorem lintegral_antitone_mul_le {f g k : ℝ≥0 → ℝ≥0∞} (hf : AEMeasurable f) (hg : AEMeasurable g)
  (h : ∀ {t}, ∫⁻ s in Set.Iio t, f s ≤ ∫⁻ s in Set.Iio t, g s) (hk : Antitone k) :
    ∫⁻ s, k s * f s ≤ ∫⁻ s, k s * g s

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem lintegral_antitone_mul_le {f g k : 0  0∞} (hf : AEMeasurable f) (hg : AEMeasurable g)  (h :  {t}, ∫⁻ s in Set.Iio t, f s  ∫⁻ s in Set.Iio t, g s) (hk : Antitone k) :    ∫⁻ s, k s * f s  ∫⁻ s, k s * g s := by  revert k  apply Antitone.ennreal_induction'  · apply SimpleFunc.antitone_induction    · intro c b      simp_rw [SimpleFunc.restrict_apply _ measurableSet_Iio,  Set.indicator_mul_left]      simp only [SimpleFunc.coe_const, Function.const_apply, measurableSet_Iio, lintegral_indicator]      rw [lintegral_const_mul'' _ hf.restrict, lintegral_const_mul'' _ hg.restrict]      gcongr 1      exact h    · intro c b      simp_rw [SimpleFunc.restrict_apply _ measurableSet_Iic,  Set.indicator_mul_left]      simp only [SimpleFunc.coe_const, Function.const_apply, measurableSet_Iic, lintegral_indicator]      rw [lintegral_const_mul'' _ hf.restrict, lintegral_const_mul'' _ hg.restrict]      gcongr 1      convert! (@h b) using 2      · exact Measure.restrict_congr_set Iio_ae_eq_Iic.symm      · exact Measure.restrict_congr_set Iio_ae_eq_Iic.symm    · intro c      simp only [SimpleFunc.coe_const, Function.const_apply]      rw [lintegral_const_mul'' _ hf, lintegral_const_mul'' _ hg]      gcongr 1      have hf' : f = ⨆ (i : ), (Set.Iic (i : 0)).indicator f := by        rw [Set.iSup_indicator bot_eq_zero monotone_const, iSup_const]        · convert (Set.indicator_univ f).symm          apply iUnion_Iic_of_not_bddAbove_range          rw [not_bddAbove_iff]          intro x          use (Nat.ceil (x.toReal + 1))          simp only [Set.mem_range, Nat.cast_inj, exists_eq, true_and]          apply (Nat.le_ceil (x + 1)).trans_lt'          simp        intro n m hnm        simpa      have hg' : g = ⨆ (i : ), (Set.Iic (i : 0)).indicator g := by        rw [Set.iSup_indicator bot_eq_zero monotone_const, iSup_const]        · convert (Set.indicator_univ g).symm          apply iUnion_Iic_of_not_bddAbove_range          rw [not_bddAbove_iff]          intro x          use (Nat.ceil (x.toReal + 1))          simp only [Set.mem_range, Nat.cast_inj, exists_eq, true_and]          apply (Nat.le_ceil (x + 1)).trans_lt'          simp        intro n m hnm        simpa      rw [hf', hg']      simp only [iSup_apply, ge_iff_le]      rw [lintegral_iSup', lintegral_iSup']      · gcongr 1 with n        simp only [measurableSet_Iic, lintegral_indicator]        convert! (@h n) using 2        · exact Measure.restrict_congr_set Iio_ae_eq_Iic.symm        · exact Measure.restrict_congr_set Iio_ae_eq_Iic.symm      · intro n        apply AEMeasurable.indicator hg measurableSet_Iic      · filter_upwards []        intro x n m hmn        simp only        gcongr      · intro n        apply AEMeasurable.indicator hf measurableSet_Iic      · filter_upwards []        intro x n m hmn        simp only        gcongr    · intro k c t measurable_t hks hk ht      simp only [SimpleFunc.coe_add, Pi.add_apply]      simp_rw [add_mul]      rw [lintegral_add_left' (f := fun s => k s * f s) ((SimpleFunc.aemeasurable _).mul hf),          lintegral_add_left' (f := fun s => k s * g s) ((SimpleFunc.aemeasurable _).mul hg)]      gcongr  · intro fs monotone_fs hfs    simp only    simp_rw [ENNReal.iSup_mul]    rw [lintegral_iSup', lintegral_iSup']    · gcongr 1 with n      exact hfs n    · fun_prop    · filter_upwards []      intro x      apply Monotone.mul_const _ (by simp)      intro n m hmn      apply monotone_fs hmn    · fun_prop    · filter_upwards []      intro x      apply Monotone.mul_const _ (by simp)      intro n m hmn      apply monotone_fs hmn