Skip to main content
AlexKontorovich/PrimeNumberTheoremAnd
Source indexedlemma · leanprover/lean4:v4.32.0

Complex.CartanBound.intervalIntegrable_sqrt_two_div_abs_one_sub_Icc

PrimeNumberTheoremAnd.Mathlib.Analysis.Complex.CartanBound · PrimeNumberTheoremAnd/Mathlib/Analysis/Complex/CartanBound.lean:290 to 367

Mathematical statement

Exact Lean statement

lemma intervalIntegrable_sqrt_two_div_abs_one_sub_Icc :
    IntervalIntegrable
      (fun t : ℝ => Real.sqrt (2 / |1 - t|))
      volume (1 / 4 : ℝ) (4 : ℝ)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma intervalIntegrable_sqrt_two_div_abs_one_sub_Icc :    IntervalIntegrable      (fun t :  => Real.sqrt (2 / |1 - t|))      volume (1 / 4 : ) (4 : ) := by  let f :    := fun u => Real.sqrt (2 / |u|)  have hf0 : IntervalIntegrable f volume (0 : ) (3 : ) := by    have hpow :        IntervalIntegrable (fun u :  => u ^ (- (2⁻¹ : ))) volume (0 : ) (3 : ) := by      simpa using        (intervalIntegral.intervalIntegrable_rpow' (a := (0 : )) (b := (3 : ))          (r := (- (2⁻¹ : ))) (by linarith : (-1 : ) < - (2⁻¹ : )))    have hpow2 :        IntervalIntegrable (fun u :  => Real.sqrt 2 * u ^ (- (2⁻¹ : ))) volume (0 : ) (3 : ) :=      hpow.const_mul (Real.sqrt 2)    have hEq :        Set.EqOn f (fun u :  => Real.sqrt 2 * u ^ (- (2⁻¹ : ))) (Set.uIoc (0 : ) (3 : )) := by      intro u hu      have hu' : u  Set.Ioc (0 : ) (3 : ) := by        simpa [Set.uIoc_of_le (show (0 : )  3 by norm_num)] using hu      have hu0 : 0 < u := hu'.1      have hu0' : 0  u := le_of_lt hu0      have habs : |u| = u := abs_of_nonneg hu0'      have : f u = Real.sqrt (2 / u) := by simp [f, habs]      calc        f u = Real.sqrt (2 / u) := this        _ = Real.sqrt 2 / Real.sqrt u := by simp        _ = Real.sqrt 2 * (Real.sqrt u)⁻¹ := by simp [div_eq_mul_inv]        _ = Real.sqrt 2 * (u ^ (2⁻¹ : ))⁻¹ := by simp [Real.sqrt_eq_rpow]        _ = Real.sqrt 2 * u ^ (- (2⁻¹ : )) := by              have h : (u ^ (2⁻¹ : ))⁻¹ = u ^ (- (2⁻¹ : )) := by                simpa using (Real.rpow_neg hu0' (2⁻¹ : )).symm              simp [h]    exact      (IntervalIntegrable.congr (a := (0 : )) (b := (3 : )):= (volume : MeasureTheory.Measure ))          (f := fun u :  => Real.sqrt 2 * u ^ (- (2⁻¹ : ))) (g := f) hEq.symm)        hpow2  have hf0' : IntervalIntegrable f volume (0 : ) (3 / 4 : ) :=    hf0.mono_set (by      intro u hu      have hsub : Set.uIcc (0 : ) (3 / 4 : )  Set.uIcc (0 : ) (3 : ) := by        refine Set.uIcc_subset_uIcc ?_ ?_        · simp        · have h0 : (0 : )  (3 / 4 : ) := by nlinarith          have h1 : (3 / 4 : )  (3 : ) := by nlinarith          exact (Set.mem_uIcc).2 (Or.inl h0, h1)      exact hsub hu)  have hleft :      IntervalIntegrable (fun t :  => Real.sqrt (2 / |1 - t|)) volume (1 / 4 : ) (1 : ) := by    have htmp :        IntervalIntegrable (fun t :  => f (1 - t)) volume (1 : ) ((1 : ) - (3 / 4 : )) := by      simpa using (hf0'.comp_sub_left (c := (1 : )))    have htmp' :        IntervalIntegrable (fun t :  => f (1 - t)) volume ((1 : ) - (3 / 4 : )) (1 : ) :=      htmp.symm    have hsub : ((1 : ) - (3 / 4 : )) = (1 / 4 : ) := by norm_num    have htmp'' : IntervalIntegrable (fun t :  => f (1 - t)) volume (1 / 4 : ) (1 : ) := by      simpa [hsub] using htmp'    simpa [f] using htmp''  have hright :      IntervalIntegrable (fun t :  => Real.sqrt (2 / |1 - t|)) volume (1 : ) (4 : ) := by    have htmp :        IntervalIntegrable (fun t :  => f (t - 1)) volume (1 : ) ((3 : ) + (1 : )) := by      simpa using (hf0.comp_sub_right (c := (1 : )))    have hsub : ((3 : ) + (1 : )) = (4 : ) := by norm_num    have htmp' : IntervalIntegrable (fun t :  => f (t - 1)) volume (1 : ) (4 : ) := by      simpa [hsub] using htmp    have hcongr :        Set.EqOn (fun t :  => f (t - 1)) (fun t :  => Real.sqrt (2 / |1 - t|))          (Set.uIoc (1 : ) (4 : )) := by      intro t _ht      simp [f, abs_sub_comm]    exact      (IntervalIntegrable.congr (a := (1 : )) (b := (4 : )):= (volume : MeasureTheory.Measure ))          (f := fun t :  => f (t - 1)) (g := fun t :  => Real.sqrt (2 / |1 - t|)) hcongr)        htmp'  exact hleft.trans hright