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

carlesonOperatorReal_measurable

Carleson.Classical.CarlesonOperatorReal · Carleson/Classical/CarlesonOperatorReal.lean:76 to 237

Mathematical statement

Exact Lean statement

lemma carlesonOperatorReal_measurable {f : ℝ → ℂ} (meas_f : AEStronglyMeasurable f)
  (hf : ∀ x, IntegrableOn f (Set.Ioo x (x + 2))) :
    Measurable (T f)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma carlesonOperatorReal_measurable {f :   ℂ} (meas_f : AEStronglyMeasurable f)  (hf :  x, IntegrableOn f (Set.Ioo x (x + 2))) :    Measurable (T f) := by  wlog f_measurable : Measurable f  · rcases meas_f with g, hg, hfg    convert this (f := g) hg.aestronglyMeasurable _ hg.measurable using 1    · unfold carlesonOperatorReal      congr with x      congr with n      congr with r      congr with _      congr with _      congr 1      apply integral_congr_ae      apply Filter.EventuallyEq.restrict      filter_upwards [hfg]      intro y hy      congr    intro x    exact (integrableOn_congr_fun_ae hfg.restrict).mp (hf x)  apply Measurable.iSup  intro n  set F :      :=    fun x r y       {y | dist x y  Set.Ioo r 1}.indicator (fun t  f t * K x t * (Complex.I * ↑n * ↑t).exp) y    with Fdef  set G :     ENNReal := fun x r  ‖∫ (y : ), F x r y‖ₑ with Gdef  have hFG : (fun x  ⨆ r, ⨆ (_ : 0 < r), ⨆ (_ : r < 1), ‖∫ (y : ) in                {y | dist x y  Set.Ioo r 1}, f y * K x y * (Complex.I * ↑n * ↑y).exp‖ₑ)             = fun x  ⨆ (r : ) (_ : r  Set.Ioo 0 1), G x r := by    ext    congr with r    simp_rw [iSup_and',  Set.mem_Ioo, Gdef, Fdef]    congr    rw [ integral_indicator annulus_measurableSet]  rw [hFG]  have hGr : (⨆ (r  Set.Ioo 0 1), G · r) = (⨆ (r  (Set.Ioo 0 1) ∩ Qᵣ), G · r) := by    ext x    rw [sup_eq_sup_dense_of_continuous Qᵣ isOpen_Ioo Qᵣ_dense]    refine fun r hr, _       (((EReal.continuous_coe_ennreal_iff.mp (EReal.continuous_coe_iff.mpr          (continuous_iff_le_induced.mpr fun _  id))).continuousAt).comp (ContinuousAt.nnnorm ?_)        ).continuousWithinAt    set S := Set.Ioo (r / 2) (2 * r) with Sdef    set bound := fun y  ‖F x (r / 2) y‖ with bound_def    have h_bound : ᶠ (s : ) in nhds r, ᵐ (a : ), ‖F x s a‖  bound a := by      rw [eventually_nhds_iff]      use S      constructor      · intro s _, _        apply Filter.Eventually.of_forall        intro y        rw [bound_def, Fdef, norm_indicator_eq_indicator_norm]        simp only        rw [norm_indicator_eq_indicator_norm]        apply Set.indicator_le_indicator_of_subset        · intro y _, _          constructor <;> linarith        · intro y          apply norm_nonneg      constructor      · apply isOpen_Ioo      · rw [Sdef]        constructor <;> linarith    apply continuousAt_of_dominated _  h_bound    · rw [bound_def, Fdef]      conv => pattern ‖_‖; rw [norm_indicator_eq_indicator_norm]      rw [integrable_indicator_iff annulus_measurableSet]      have bound_on_set : ᵐ a ∂(volume.restrict {y | dist x y  Set.Ioo (r / 2) 1}),          ‖K x a * (Complex.I * (↑n * ↑a)).exp‖ 2 ^ (2 : ) / (2 * (r / 2))‖ := by        rw [ae_restrict_iff' annulus_measurableSet]        filter_upwards with a ha        rw [norm_mul, mul_comm Complex.I]        norm_cast        rw [Complex.norm_exp_ofReal_mul_I, mul_one]        rw [Real.norm_eq_abs, abs_of_nonneg (by apply div_nonneg (by norm_num); linarith)]        calc _          _  2 ^ (2 : ) / (2 * |x - a|) := Hilbert_kernel_bound          _  4 / (2 * (r / 2)) := by            gcongr            · linarith            · rw [ Real.dist_eq]              exact ha.1.le      simp_rw [Complex.norm_mul] at bound_on_set      simp_rw [Complex.norm_mul, mul_assoc]      unfold IntegrableOn      apply Integrable.mul_bdd _ (by fun_prop) (by simpa only [norm_mul, norm_norm])      apply Integrable.norm      rw [annulus_real_eq (by linarith [hr]),  IntegrableOn]      apply IntegrableOn.mono_set (hf (x - 1))      intro y      grind    · have contOn1 :  (y : ), ContinuousOn (F x · y) (Set.Iio (dist x y)) := by        intro y        rw [continuousOn_iff_continuous_restrict]        apply continuous_of_const        simp only [Set.restrict_apply, Subtype.forall]        intro s hs t ht        rw [Fdef]        simp only [Set.mem_Ioo]        by_cases! h : dist x y < 1        · rw [Set.indicator_apply, ite_cond_eq_true, Set.indicator_apply, ite_cond_eq_true]          · simpa using ht, h          · simpa using hs, h        · rw [Set.indicator_apply, ite_cond_eq_false, Set.indicator_apply, ite_cond_eq_false]          all_goals simpa using fun _  h      have contOn2 :  (y : ), ContinuousOn (fun s  F x s y) (Set.Ioi (min (dist x y) 1)) := by        intro y        rw [continuousOn_iff_continuous_restrict]        apply continuous_of_const        simp only [Set.restrict_apply, Subtype.forall]        intro s hs t ht        rw [Fdef]        simp only [Set.mem_Ioo]        rw [Set.indicator_apply, ite_cond_eq_false, Set.indicator_apply, ite_cond_eq_false]        · rw [Set.mem_Ioi, min_lt_iff] at ht          simp only [Set.mem_setOf_eq, eq_iff_iff, iff_false, not_and, not_lt]          intro h          rcases ht with h' | h'          · exfalso            exact (lt_self_iff_false _).mp (h'.trans h)          · exact (h'.trans h).le        · rw [Set.mem_Ioi, min_lt_iff] at hs          simp only [Set.mem_setOf_eq, eq_iff_iff, iff_false, not_and, not_lt]          intro h          rcases hs with h' | h'          · exfalso            exact (lt_self_iff_false _).mp (h'.trans h)          · exact (h'.trans h).le      have contOn :  y,  t  dist x y, ContinuousAt (F x · y) t := by        intro y t ht        by_cases! h : t < dist x y        · exact_mod_cast (contOn1 y).continuousAt (Iio_mem_nhds h)        · exact ContinuousOn.continuousAt (contOn2 y) (Ioi_mem_nhds            ((min_le_left _ _).trans_lt (lt_of_le_of_ne h ht.symm)))      have subset_finite :          {y | ¬ContinuousAt (F x · y) r}  ({x - r, x + r} : Finset ) := by        intro y hy        have hxy : dist x y = r := by          contrapose! hy          rw [Set.mem_setOf_eq, not_not]          exact contOn y r hy.symm        rw [Real.dist_eq, abs_eq hr.le] at hxy        simp only [Finset.coe_insert, Finset.coe_singleton, Set.mem_insert_iff,          Set.mem_singleton_iff]        cases hxy        · left; linarith        · right; linarith      rw [ae_iff]      exact measure_mono_null subset_finite (Finset.measure_zero _ _)    · filter_upwards with r      apply AEStronglyMeasurable.indicator _ annulus_measurableSet      apply AEStronglyMeasurable.mul      · apply AEStronglyMeasurable.mul meas_f (by fun_prop)      · fun_prop  rw [hGr]  refine Measurable.biSup _ (Set.Countable.mono Set.inter_subset_right Qᵣ_countable) (fun r _  ?_)  apply measurable_coe_nnreal_ennreal.comp (measurable_nnnorm.comp _)  rw [ stronglyMeasurable_iff_measurable]  apply StronglyMeasurable.integral_prod_right  rw [stronglyMeasurable_iff_measurable, Fdef]  exact (measurable_mul_kernel f_measurable).indicator (measurable_dist measurableSet_Ioo)