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

Hilbert_kernel_regularity_main_part

Carleson.Classical.HilbertKernel · Carleson/Classical/HilbertKernel.lean:87 to 205

Mathematical statement

Exact Lean statement

lemma Hilbert_kernel_regularity_main_part {y y' : ℝ} (yy'nonneg : 0 ≤ y ∧ 0 ≤ y') (ypos : 0 < y)
    (y2ley' : y / 2 ≤ y') (hy : y ≤ 1) (hy' : y' ≤ 1) :
    ‖k (-y) - k (-y')‖ ≤ 2 ^ 6 * (1 / |y|) * (|y - y'| / |y|)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma Hilbert_kernel_regularity_main_part {y y' : } (yy'nonneg : 0  y  0  y') (ypos : 0 < y)    (y2ley' : y / 2  y') (hy : y  1) (hy' : y'  1) :    ‖k (-y) - k (-y')‖  2 ^ 6 * (1 / |y|) * (|y - y'| / |y|) := by  rw [k_of_abs_le_one, k_of_abs_le_one]  · simp only [abs_neg, ofReal_neg, mul_neg]    rw [_root_.abs_of_nonneg yy'nonneg.1, _root_.abs_of_nonneg yy'nonneg.2]    set f :  := fun t  (1 - t) / (1 - exp (-(I * t))) with hf    set f' :  := fun t  (-1 + exp (-(I * t)) + I * (t - 1) * exp (-(I * t)))      / (1 - exp (-(I * t))) ^ 2 with f'def    set c :  := fun t  (1 - t) with cdef    set c' :  := fun t  -1 with c'def    set d :  := fun t  (1 - exp (-(I * t))) with ddef    set d' :  := fun t  I * exp (-(I * t)) with d'def    have d_nonzero {t : } (ht : t  Set.uIcc y' y) : d t  0 := by      rw [Set.mem_uIcc] at ht      have ht' : 0 < t  t  1 := by        rcases ht with ht | ht <;> (constructor <;> linarith)      rw [ddef]      simp only [ne_eq]      rw [norm_eq_zero]      apply ne_of_gt      calc1 - exp (-(I * ↑t))‖        _  |(1 - exp (-(I * ↑t))).im| := by          simp only [ge_iff_le]          apply abs_im_le_norm        _ = Real.sin t := by          simp only [sub_im, one_im, exp_im, neg_re, mul_re,            I_re, ofReal_re, zero_mul, I_im, ofReal_im, mul_zero,            sub_self, neg_zero, Real.exp_zero, neg_im, mul_im, one_mul, zero_add,            Real.sin_neg, mul_neg, sub_neg_eq_add, abs_eq_self]          exact Real.sin_nonneg_of_nonneg_of_le_pi (by linarith) (by linarith [Real.two_le_pi])        _ > 0 := Real.sin_pos_of_pos_of_lt_pi (by linarith) (by linarith [Real.two_le_pi])    have f_deriv :  t  Set.uIcc y' y, HasDerivAt f (f' t) t := by      intro t ht      have : f = fun t  c t / d t := rfl      rw [this]      have : f' = fun t  ((c' t * d t - c t * d' t) / d t ^ 2) := by ext t; ring      rw [this]      apply HasDerivAt.div _ _ _      · exact cdef ▸ c'defHasDerivAt.const_sub _ (HasDerivAt.ofReal_comp (hasDerivAt_id' _))      · rw [ddef, d'def]        simp only        rw [neg_neg (I * exp (-(I * ↑t)))]        rw [neg_mul, mul_comm]        apply HasDerivAt.const_sub _ (HasDerivAt.cexp (HasDerivAt.neg _))        conv in fun (x : )  I * (x : ) => ext; rw [mul_comm]        set e : ℂ := fun t  t * I with edef        have : (fun (t : )  t * I) = fun (t : )  e t := by rw [edef]        rw [this]        apply HasDerivAt.comp_ofReal        rw [edef]        apply hasDerivAt_mul_const      · exact d_nonzero ht    have f'_cont : ContinuousOn (fun t  f' t) (Set.uIcc y' y) :=      ContinuousOn.div (by fun_prop) (by fun_prop) (by simpa using fun _ ht  d_nonzero ht)    calc ‖(1 - ↑y) / (1 - exp (-(I * ↑y))) - (1 - ↑y') / (1 - exp (-(I * ↑y')))‖      _ = ‖f y - f y'‖ := by simp [hf]      _ = ‖∫ (t : ) in y'..y, f' t‖ := by        congr 1        rw [intervalIntegral.integral_eq_sub_of_hasDerivAt]        · exact f_deriv        · exact f'_cont.intervalIntegrable      _ = ‖∫ (t : ) in Ι y' y, f' t‖ := intervalIntegral.norm_intervalIntegral_eq _ _ _ _      _  ∫ (t : ) in Ι y' y, ‖f' t‖ := norm_integral_le_integral_norm _      _  ∫ (t : ) in Ι y' y, 3 / ((y / 2) / 2) ^ 2 := by        apply setIntegral_mono_on        · exact f'_cont.norm.integrableOn_uIcc.mono_set Set.Ioc_subset_Icc_self        · apply (integrableOn_const_iff).mpr          rw [Real.volume_uIoc]          right          exact ENNReal.ofReal_lt_top        · exact measurableSet_uIoc        · intro t ht          rw [Set.mem_uIoc] at ht          have ht' : 0 < t  t  1 := by            rcases ht with ht | ht <;> (constructor <;> linarith)          rw [f'def]          simp only [norm_div, norm_pow]          gcongr          · calc ‖(-1 + exp (-(I * ↑t)) +              I * (↑t - 1) * exp (-(I * ↑t)))‖              _  ‖(-1 + exp (-(I * ↑t)))‖ +                ‖(I * (↑t - 1) * exp (-(I * ↑t)))‖ :=                  norm_add_le ..              _  ‖(-1 : ℂ)‖ + ‖(exp (-(I * ↑t)))‖ +                ‖(I * (↑t - 1) * exp (-(I * ↑t)))‖ := by                gcongr                exact norm_add_le ..              _  1 + 1 + 1 := by                gcongr                · simp                · rw [mul_comm, neg_mul]                  norm_cast                  exact le_of_eq (norm_exp_ofReal_mul_I _)                · simp only [Complex.norm_mul, norm_I, one_mul]                  apply mul_le_one₀                  on_goal 1 => norm_cast                  rw [Real.norm_of_nonpos] <;> linarith                  · exact norm_nonneg _                  rw [mul_comm, neg_mul]                  norm_cast                  exact le_of_eq (norm_exp_ofReal_mul_I _)              _ = 3 := by norm_num          · rw_mod_cast [mul_comm, neg_mul, mul_comm]            apply lower_secant_bound            · simp only [neg_mul, Set.mem_Icc, neg_add_le_iff_le_add, le_add_neg_iff_add_le,              neg_le_sub_iff_le_add]              constructor <;> linarith [Real.two_le_pi, Real.two_pi_pos]            · rw [abs_neg, le_abs]              left              rcases ht with ht | ht <;> linarith [ht.1]      _ = (volume (Ι y' y)).toReal * (3 / ((y / 2) / 2) ^ 2) :=        setIntegral_const _      _ = |y - y'| * (3 / ((y / 2) / 2) ^ 2) := by        rw [Real.volume_uIoc, ENNReal.toReal_ofReal (abs_nonneg (y - y'))]      _ = (3 * (2 * 2) ^ 2) * (1 / y) * (|y - y'| / y) := by ring      _  2 ^ 6 * (1 / y) * (|y - y'| / y) := by gcongr; norm_num  · rwa [abs_neg, _root_.abs_of_nonneg yy'nonneg.2]  · rwa [abs_neg, _root_.abs_of_nonneg yy'nonneg.1]