lemma
proved
phi_contDiff_succ
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 197.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
all -
H -
all -
deriv_phi_eq -
Phi -
phi_contDiff_succ -
phi_differentiable -
deriv_phi_eq -
Phi -
phi_differentiable -
H -
all -
for -
all
used by
formal source
194 linarith
195 field_simp at h_integral ⊢; linarith
196
197private lemma phi_contDiff_succ (H : ℝ → ℝ) (h_cont : Continuous H) {n : ℕ}
198 (h : ContDiff ℝ (n : ℕ∞) H) : ContDiff ℝ ((n + 1 : ℕ) : ℕ∞) (Phi H) := by
199 suffices ContDiff ℝ ((n : ℕ∞) + 1) (Phi H) by exact_mod_cast this
200 rw [contDiff_succ_iff_deriv]
201 exact ⟨phi_differentiable H h_cont,
202 fun h_omega => absurd h_omega (by exact_mod_cast WithTop.coe_ne_top),
203 by rwa [deriv_phi_eq H h_cont]⟩
204
205/-- Core bootstrap: continuous d'Alembert → C^n for all n. -/
206private theorem dAlembert_contDiff_nat (H : ℝ → ℝ) (h_one : H 0 = 1) (h_cont : Continuous H)
207 (h_dAl : ∀ t u, H (t + u) + H (t - u) = 2 * H t * H u) :
208 ∀ n : ℕ, ContDiff ℝ (n : ℕ∞) H := by
209 obtain ⟨δ, _, hδ_ne⟩ := exists_integral_ne_zero H h_one h_cont
210 have h_rep := representation_formula H h_cont h_dAl hδ_ne
211 intro n; induction n with
212 | zero => exact contDiff_zero.mpr h_cont
213 | succ n ih =>
214 have h_phi := phi_contDiff_succ H h_cont ih
215 have h1 : ContDiff ℝ ((n + 1 : ℕ) : ℕ∞) (fun t => Phi H (t + δ)) :=
216 h_phi.comp (contDiff_id.add contDiff_const)
217 have h2 : ContDiff ℝ ((n + 1 : ℕ) : ℕ∞) (fun t => Phi H (t - δ)) :=
218 h_phi.comp (contDiff_id.sub contDiff_const)
219 have h4 : ContDiff ℝ ((n + 1 : ℕ) : ℕ∞)
220 (fun t => (Phi H (t + δ) - Phi H (t - δ)) / (2 * Phi H δ)) :=
221 (h1.sub h2).div_const _
222 exact (funext h_rep) ▸ h4
223
224private theorem dAlembert_contDiff_smooth (H : ℝ → ℝ) (h_one : H 0 = 1) (h_cont : Continuous H)
225 (h_dAl : ∀ t u, H (t + u) + H (t - u) = 2 * H t * H u) :
226 ContDiff ℝ smooth H :=
227 contDiff_infty.mpr (dAlembert_contDiff_nat H h_one h_cont h_dAl)