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

measurable_lcoConvergent

Carleson.MetricCarleson.Linearized · Carleson/MetricCarleson/Linearized.lean:71 to 106

Mathematical statement

Exact Lean statement

lemma measurable_lcoConvergent {n : ℕ} (mf : Measurable f) (nf : (‖f ·‖) ≤ 1) :
    Measurable (lcoConvergent K Q f n)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma measurable_lcoConvergent {n : } (mf : Measurable f) (nf : (‖f ·‖)  1) :    Measurable (lcoConvergent K Q f n) := by  refine measurable_of_Ioi fun c  ?_  let J : Set ( × ) := {p | (2 ^ n)⁻¹ < p.1  p.1 < p.2  p.2 < 2 ^ n}  suffices lcoConvergent K Q f n ⁻¹' Ioi c = ⋃ j  J, {x | c < ‖T_R K Q j.1 j.2 (2 ^ n) f x‖ₑ} by    rw [this]; refine MeasurableSet.biUnion J.to_countable fun j mj  ?_    exact measurableSet_lt measurable_const      ((measurable_carlesonOperatorIntegrand mf).indicator measurableSet_ball).enorm  ext x  simp_rw [mem_preimage, mem_Ioi, lcoConvergent, lt_biSup_iff, mem_iUnion₂, mem_setOf_eq,    exists_prop]  constructor <;> intro h  · obtain R₁, mR₁, R₂, mR₂, hR := h; unfold T_R at hR     by_cases mx : x  Metric.ball (cancelPt X) (2 ^ n); swap    · simp [indicator_of_notMem mx] at hR    simp_rw [indicator_of_mem mx] at hR     lift c to 0 using hR.ne_top    simp_rw [coe_lt_enorm,  NNReal.coe_lt_coe, coe_nnnorm] at hR     let ε := ‖carlesonOperatorIntegrand K (Q x) R₁ R₂ f x‖ - c    have εpos : 0 < ε := by linarith only [hR]    have hR₁ : 0 < R₁ := lt_of_le_of_lt (by positivity) mR₁.1    have hR₂ : R₁ < R₂ := mR₂.1    obtain q₁, q₂, lq₁, lq, lq₂, dq :=      exists_rat_near_carlesonOperatorIntegrand (Q x) x mf nf hR₁ hR₂ εpos    have qmJ : (q₁, q₂)  J := by      refine ?_, Rat.cast_lt.mp lq, ?_      · simp_rw [ Rat.cast_lt (K := ), Rat.cast_inv, Rat.cast_pow, Rat.cast_ofNat]        exact mR₁.1.trans lq₁      · simp_rw [ Rat.cast_lt (K := ), Rat.cast_pow, Rat.cast_ofNat]        exact lq₂.trans mR₂.2    use (q₁, q₂), qmJ    simp_rw [ε, lt_sub_comm, dist_eq_norm'] at dq; apply dq.trans_le    rw [sub_le_comm]; exact norm_sub_norm_le ..  · obtain ⟨⟨R₁, R₂, bR₁, bR₂, bR₃, hR := h; dsimp only at hR    simp_rw [ Rat.cast_lt (K := ), Rat.cast_inv, Rat.cast_pow, Rat.cast_ofNat] at bR₁ bR₂ bR₃    use R₁, bR₁, bR₂.trans bR₃, R₂, bR₂, bR₃