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

small_annulus_left

Carleson.TwoSidedCarleson.NontangentialOperator · Carleson/TwoSidedCarleson/NontangentialOperator.lean:894 to 948

Source documentation

Part of Lemma 10.1.7, reformulated

Exact Lean statement

theorem small_annulus_left {g : X → ℂ} (hg : BoundedFiniteSupport g) {R₁ R₂ : ℝ} (hR₁ : 0 ≤ R₁) :
    ContinuousWithinAt (fun R ↦ ∫ y in Annulus.oo x R R₂, K x y * g y) (Ioo R₁ R₂) R₂

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem small_annulus_left {g : X  ℂ} (hg : BoundedFiniteSupport g) {R₁ R₂ : } (hR₁ : 0  R₁) :    ContinuousWithinAt (fun R  ∫ y in Annulus.oo x R R₂, K x y * g y) (Ioo R₁ R₂) R₂ := by  by_cases hR1R2 : R₁ < R₂  case neg => rw [Ioo_eq_empty hR1R2, ContinuousWithinAt, nhdsWithin_empty]; exact Filter.tendsto_bot  conv => arg 1; intro R; rw [ integral_indicator (by measurability)]  obtain B, hB := czOperator_bound (K := K) (r := R₂ / 2) hg (by linarith [hR₁.trans_lt hR1R2]) x  rw [ae_restrict_iff' (by measurability),  Annulus.ci_eq] at hB  let bound (y : X) :  := (Annulus.oo x (R₂ / 2) R₂).indicator (fun y  B) y  apply continuousWithinAt_of_dominated (bound := bound)  · filter_upwards with R    have : Measurable (K x) := measurable_K_right x    fun_prop (disch := measurability)  · unfold bound    simp_rw [norm_indicator_eq_indicator_norm]    have : nhdsWithin R₂ (Ioo R₁ R₂) |>.Eventually (fun r  R₂ / 2 < r) := by      apply eventually_nhdsWithin_of_eventually_nhds      apply eventually_nhds_iff_ball.mpr      use R₂ / 2      constructor      · simp [hR₁.trans_lt hR1R2]      · intro r hr        rw [mem_ball, dist_comm] at hr        linarith [Real.sub_le_dist R₂ r]    filter_upwards [this] with r hr    filter_upwards [hB] with y hy    refine indicator_le_indicator_of_subset (by gcongr)      (fun a  by positivity) _ |>.trans <| indicator_le_indicator' ?_    exact fun h2y  hy <| Annulus.oo_subset_ci (by rfl) h2y  · unfold bound    rw [integrable_indicator_iff (by measurability), Annulus.oo_eq]    apply integrableOn_const (measure_ne_top_of_subset inter_subset_left (by finiteness)) (by simp)  · -- This is painful because we have to show continuity of the indicator    -- which is needed to apply `dominated` because `R` is variable in the domain of the integral.    -- This in turn meant proving continuity at `R₂`, which actually aligns with the blueprint.    filter_upwards with y    unfold ContinuousWithinAt    have : nhdsWithin R₂ (Ioo R₁ R₂) |>.Eventually (fun r  y  Annulus.oo x r R₂) := by      by_cases hy : dist x y < R₂      · have : nhdsWithin R₂ (Ioo R₁ R₂) |>.Eventually (fun r  dist x y < r) := by          apply eventually_nhdsWithin_of_eventually_nhds          apply eventually_nhds_iff_ball.mpr          use (R₂ - dist x y)          constructor          · simp [hy]          · intro r hr            rw [mem_ball, dist_comm] at hr            linarith [Real.sub_le_dist R₂ r]        filter_upwards [this] with r hr        exact fun hy  hr.not_gt hy.1      · filter_upwards with r; unfold Annulus.oo; rw [notMem_setOf_iff]; exact fun hy2  hy hy2.2    rw [Filter.tendsto_iff_forall_eventually_mem]    intro s hs    filter_upwards [this] with r hr    apply mem_of_mem_nhds    simpa [indicator_of_notMem hr] using hs