Plain-language statement
Let be a twice differentiable complex-valued function whose first two derivatives are integrable, and let be a twice differentiable compactly supported cutoff that equals on and vanishes outside . Then converges to as in the project norm
Exact Lean statement
theorem W21_approximation (f : W21) (g : trunc) :
Tendsto (fun R => ‖f - (g.scale R * f : W21)‖) atTop (𝓝 0)Formal artifact
Lean source
theorem W21_approximation (f : W21) (g : trunc) : Tendsto (fun R => ‖f - (g.scale R * f : W21)‖) atTop (𝓝 0) := by -- Definitions let f' := f.deriv let f'' := f'.deriv let g' := (g : CS 2 ℝ).deriv let g'' := g'.deriv let h R v := 1 - g.scale R v let h' R := - (g.scale R).deriv let h'' R := - (g.scale R).deriv.deriv -- Properties of h have ch {R} : Continuous (fun v => (h R v : ℂ)) := continuous_ofReal.comp <| continuous_const.sub (CS.continuous _) have ch' {R} : Continuous (fun v => (h' R v : ℂ)) := continuous_ofReal.comp (CS.continuous _) have ch'' {R} : Continuous (fun v => (h'' R v : ℂ)) := continuous_ofReal.comp (CS.continuous _) have dh R v : HasDerivAt (h R) (h' R v) v := by convert! CS.hasDerivAt_scale (g : CS 2 ℝ) R v |>.const_sub 1 using 1 simp [h', CS.deriv_scale', show g.deriv.toFun = deriv g.toFun from rfl] have dh' R v : HasDerivAt (h' R) (h'' R v) v := ((g.scale R).deriv.hasDerivAt v).neg have hh1 R v : |h R v| ≤ 1 := by by_cases hR : R = 0 <;> simp only [CS.scale, funscale, smul_eq_mul, hR, ↓reduceDIte, Pi.zero_apply, sub_zero, abs_one, le_refl, h] rw [abs_le] ; constructor <;> linarith [g.le_one (R⁻¹ * v), g.nonneg (R⁻¹ * v)] have vR v : Tendsto (fun R : ℝ => v * R⁻¹) atTop (𝓝 0) := by simpa using tendsto_inv_atTop_zero.const_mul v -- Proof convert_to Tendsto (fun R => W21.norm (fun v => h R v * f v)) atTop (𝓝 0) · ext R ; change W21.norm _ = _ ; congr ; ext v ; simp [h, sub_mul] ; rfl rw [show (0 : ℝ) = 0 + ((4 * π ^ 2)⁻¹ : ℝ) * 0 by simp] refine Tendsto.add ?_ (Tendsto.const_mul _ ?_) · let F R v := ‖h R v * f v‖ have eh v : ∀ᶠ R in atTop, h R v = 0 := by filter_upwards [(vR v).eventually g.zero, eventually_ne_atTop 0] with R hR hR' simp [h, hR, CS.scale, hR', funscale, mul_comm R⁻¹] have e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume := by apply Eventually.of_forall ; intro R exact (ch.mul f.continuous).norm.aestronglyMeasurable have e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f a‖ := by apply Eventually.of_forall ; intro R apply Eventually.of_forall ; intro v simpa [F] using mul_le_mul (hh1 R v) le_rfl (by simp) zero_le_one have e4 : ∀ᵐ (a : ℝ), Tendsto (fun n ↦ F n a) atTop (𝓝 0) := by apply Eventually.of_forall ; intro v apply tendsto_nhds_of_eventually_eq ; filter_upwards [eh v] with R hR ; simp [F, hR] simpa [F] using tendsto_integral_filter_of_dominated_convergence _ e1 e2 f.hf.norm e4 · let F R v := ‖h'' R v * f v + 2 * h' R v * f' v + h R v * f'' v‖ convert_to Tendsto (fun R ↦ ∫ (v : ℝ), F R v) atTop (𝓝 0) · have this R v : deriv (deriv (fun v => h R v * f v)) v = h'' R v * f v + 2 * h' R v * f' v + h R v * f'' v := by have df v : HasDerivAt f (f' v) v := f.hasDerivAt v have df' v : HasDerivAt f' (f'' v) v := f'.hasDerivAt v have l3 v : HasDerivAt (fun v => h R v * f v) (h' R v * f v + h R v * f' v) v := (dh R v).ofReal_comp.mul (df v) have l5 : HasDerivAt (fun v => h' R v * f v) (h'' R v * f v + h' R v * f' v) v := (dh' R v).ofReal_comp.mul (df v) have l7 : HasDerivAt (fun v => h R v * f' v) (h' R v * f' v + h R v * f'' v) v := (dh R v).ofReal_comp.mul (df' v) have d1 : deriv (fun v => h R v * f v) = fun v => h' R v * f v + h R v * f' v := funext (fun v => (l3 v).deriv) rw [d1] ; convert! (l5.add l7).deriv using 1 ; ring simp_rw [this, F] obtain ⟨c1, mg'⟩ := g'.bounded obtain ⟨c2, mg''⟩ := g''.bounded let bound v := c2 * ‖f v‖ + 2 * c1 * ‖f' v‖ + ‖f'' v‖ have e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume := by apply Eventually.of_forall ; intro R ; apply (Continuous.norm ?_).aestronglyMeasurable exact ((ch''.mul f.continuous).add ((continuous_const.mul ch').mul f.deriv.continuous)).add (ch.mul f.deriv.deriv.continuous) have e2 : ∀ᶠ R in atTop, ∀ᵐ (a : ℝ), ‖F R a‖ ≤ bound a := by have hc1 : ∀ᶠ R in atTop, ∀ v, |h' R v| ≤ c1 := by filter_upwards [eventually_ge_atTop 1] with R hR v have hR' : R ≠ 0 := by linarith have : 0 ≤ R := by linarith simp only [CS.deriv_scale, CS.neg_apply, CS.smul_apply, smul_eq_mul, abs_neg, abs_mul, abs_inv, abs_eq_self.mpr this, ge_iff_le, h'] simp only [CS.scale, hR', ↓reduceDIte, funscale, smul_eq_mul] convert_to _ ≤ c1 * 1 · simp · rw [mul_comm] apply mul_le_mul (mg' _) (inv_le_of_inv_le₀ (by linarith) (by simpa using hR)) (by positivity) exact (abs_nonneg _).trans (mg' 0) have hc2 : ∀ᶠ R in atTop, ∀ v, |h'' R v| ≤ c2 := by filter_upwards [eventually_ge_atTop 1] with R hR v have e1 : 0 ≤ R := by linarith have e2 : R⁻¹ ≤ 1 := inv_le_of_inv_le₀ (by linarith) (by simpa using hR) have e3 : R ≠ 0 := by linarith simp only [CS.deriv_scale, CS.deriv_smul, CS.neg_apply, CS.smul_apply, smul_eq_mul, abs_neg, abs_mul, abs_inv, abs_eq_self.mpr e1, ge_iff_le, h''] convert_to _ ≤ 1 * (1 * c2) · simp apply mul_le_mul e2 ?_ (by positivity) zero_le_one apply mul_le_mul e2 ?_ (by positivity) zero_le_one simp only [CS.scale, e3, ↓reduceDIte, funscale, smul_eq_mul] ; apply mg'' filter_upwards [hc1, hc2] with R hc1 hc2 apply Eventually.of_forall ; intro v ; specialize hc1 v ; specialize hc2 v simp only [F, bound, norm_norm] refine (norm_add_le _ _).trans ?_ ; apply add_le_add · refine (norm_add_le _ _).trans ?_ ; apply add_le_add <;> simp only [Complex.norm_mul, Complex.norm_ofNat, norm_real, norm_eq_abs] <;> gcongr · simpa using mul_le_mul (hh1 R v) le_rfl (by simp) zero_le_one have e3 : Integrable bound volume := (((f.hf.norm).const_mul _).add ((f.hf'.norm).const_mul _)).add f.hf''.norm have e4 : ∀ᵐ (a : ℝ), Tendsto (fun n ↦ F n a) atTop (𝓝 0) := by apply Eventually.of_forall ; intro v have evg' : g' =ᶠ[𝓝 0] 0 := by convert! ← g.zero.deriv ; exact deriv_const' _ have evg'' : g'' =ᶠ[𝓝 0] 0 := by convert! ← evg'.deriv ; exact deriv_const' _ refine tendsto_norm_zero.comp <| (ZeroAtFilter.add ?_ ?_).add ?_ · have eh'' v : ∀ᶠ R in atTop, h'' R v = 0 := by filter_upwards [(vR v).eventually evg'', eventually_ne_atTop 0] with R hR hR' simp only [CS.deriv_scale, CS.deriv_smul, CS.neg_apply, CS.smul_apply, smul_eq_mul, neg_eq_zero, mul_eq_zero, inv_eq_zero, hR', false_or, h''] simp only [CS.scale, hR', ↓reduceDIte, funscale, smul_eq_mul, mul_comm R⁻¹] exact hR apply tendsto_nhds_of_eventually_eq filter_upwards [eh'' v] with R hR ; simp [hR] · have eh' v : ∀ᶠ R in atTop, h' R v = 0 := by filter_upwards [(vR v).eventually evg'] with R hR simp [g'] at hR simp [h', CS.deriv_scale', mul_comm R⁻¹, hR] apply tendsto_nhds_of_eventually_eq filter_upwards [eh' v] with R hR ; simp [hR] · simpa [h] using! ((g.tendsto_scale v).const_sub 1).ofReal.mul tendsto_const_nhds simpa [F] using tendsto_integral_filter_of_dominated_convergence bound e1 e2 e3 e4- Project
- Prime Number Theorem and More
- License
- Apache-2.0
- Commit
- a93551347dce
- Source
- PrimeNumberTheoremAnd/Sobolev.lean:227-359
Reuse this declaration
Bring the exact result into your workflow
The import identifies the source module. Your project still needs the pinned package dependency shown on this page.
What this badge means
This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.
Continue in this project
Related declarations
Admissible bound mono
admissible_bound.mono
Plain-language statement
For positive parameters , the classical error-bound function is nonincreasing once .
Source project: Prime Number Theorem and More
Person-level attribution pending.
Analytic On div Removable zero
AnalyticOn_divRemovable_zero
Plain-language statement
Let be analytic on an open set containing , and suppose . Define for and . Then the apparent singularity at is removable and is analytic throughout .
Source project: Prime Number Theorem and More
Person-level attribution pending.
Analytic On div Removable zero closed Ball
AnalyticOn_divRemovable_zero_closedBall
Plain-language statement
Suppose and is analytic on the closed disc with . Define for and . Then is analytic on the entire closed disc, including at the removed singularity.
Source project: Prime Number Theorem and More
Person-level attribution pending.