lemma
proved
phi_differentiable
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Cost.AczelTheorem on GitHub at line 105.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
102 intervalIntegral.integral_hasDerivAt_right (h_cont.intervalIntegrable 0 t)
103 h_cont.aestronglyMeasurable.stronglyMeasurableAtFilter h_cont.continuousAt
104
105private lemma phi_differentiable (H : ℝ → ℝ) (h_cont : Continuous H) :
106 Differentiable ℝ (Phi H) :=
107 fun t => (phi_hasDerivAt H h_cont t).differentiableAt
108
109private lemma deriv_phi_eq (H : ℝ → ℝ) (h_cont : Continuous H) : deriv (Phi H) = H :=
110 funext fun t => (phi_hasDerivAt H h_cont t).deriv
111
112private lemma exists_integral_ne_zero (H : ℝ → ℝ) (h_one : H 0 = 1) (h_cont : Continuous H) :
113 ∃ δ : ℝ, 0 < δ ∧ Phi H δ ≠ 0 := by
114 have h_pos : (0 : ℝ) < H 0 := by rw [h_one]; exact one_pos
115 have h_ev : ∀ᶠ x in nhds (0 : ℝ), (0 : ℝ) < H x :=
116 h_cont.continuousAt.eventually (Ioi_mem_nhds h_pos)
117 obtain ⟨ε, hε_pos, hε⟩ := Metric.eventually_nhds_iff.mp h_ev
118 refine ⟨ε / 2, by positivity, ?_⟩
119 intro h_eq
120 have hδ_pos : (0 : ℝ) < ε / 2 := by positivity
121 obtain ⟨c, hc_mem, hc_eq⟩ := exists_hasDerivAt_eq_slope (Phi H) H hδ_pos
122 ((phi_differentiable H h_cont).continuous.continuousOn)
123 (fun x _ => phi_hasDerivAt H h_cont x)
124 rw [phi_zero, h_eq, sub_zero, zero_div] at hc_eq
125 linarith [hε (show dist c 0 < ε by
126 simp only [Real.dist_eq, sub_zero, abs_of_pos hc_mem.1]; linarith [hc_mem.2])]
127
128/-- The representation formula: H(t) = (Φ(t+δ) − Φ(t−δ)) / (2·Φ(δ)).
129 This is the key identity that bootstraps regularity. -/
130private lemma representation_formula (H : ℝ → ℝ) (h_cont : Continuous H)
131 (h_dAl : ∀ t u, H (t + u) + H (t - u) = 2 * H t * H u)
132 {δ : ℝ} (hδ_ne : Phi H δ ≠ 0) (t : ℝ) :
133 H t = (Phi H (t + δ) - Phi H (t - δ)) / (2 * Phi H δ) := by
134 have h_cont_add : Continuous (fun u => H (t + u)) :=
135 h_cont.comp (continuous_const.add continuous_id)