pith. machine review for the scientific record. sign in
lemma

contDiffTwo_differentiable_deriv

proved
show as:
view math explainer →
module
IndisputableMonolith.Cost.ContDiffReduction
domain
Cost
line
31 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.Cost.ContDiffReduction on GitHub at line 31.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

used by

formal source

  28    (h_diff : ContDiff ℝ 2 Hf) : Differentiable ℝ Hf := by
  29  exact h_diff.differentiable (by decide : (2 : WithTop ℕ∞) ≠ 0)
  30
  31private lemma contDiffTwo_differentiable_deriv {Hf : ℝ → ℝ}
  32    (h_diff : ContDiff ℝ 2 Hf) : Differentiable ℝ (deriv Hf) := by
  33  have h_diff' := h_diff
  34  rw [show (2 : WithTop ℕ∞) = 1 + 1 from rfl] at h_diff'
  35  rw [contDiff_succ_iff_deriv] at h_diff'
  36  exact h_diff'.2.2.differentiable (by decide : (1 : WithTop ℕ∞) ≠ 0)
  37
  38private lemma hasDerivAt_deriv_of_contDiffTwo {Hf : ℝ → ℝ}
  39    (h_diff : ContDiff ℝ 2 Hf) (x : ℝ) :
  40    HasDerivAt (deriv Hf) (deriv (deriv Hf) x) x := by
  41  exact (contDiffTwo_differentiable_deriv h_diff).differentiableAt.hasDerivAt
  42
  43/-- Differentiate the d'Alembert equation once in the second variable. -/
  44theorem dAlembert_first_deriv_of_contDiff
  45    (Hf : ℝ → ℝ)
  46    (h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u)
  47    (h_diff : ContDiff ℝ 2 Hf) :
  48    ∀ t u, deriv Hf (t + u) - deriv Hf (t - u) = 2 * Hf t * deriv Hf u := by
  49  intro t u
  50  have h_diff1 : Differentiable ℝ Hf := contDiffTwo_differentiable h_diff
  51  have h_plus :
  52      HasDerivAt (fun v => Hf (t + v)) (deriv Hf (t + u)) u := by
  53    have h_inner : HasDerivAt (fun v => t + v) 1 u := by
  54      simpa using (hasDerivAt_const u t).add (hasDerivAt_id u)
  55    simpa using (h_diff1.differentiableAt (x := t + u)).hasDerivAt.comp u h_inner
  56  have h_minus :
  57      HasDerivAt (fun v => Hf (t - v)) (-deriv Hf (t - u)) u := by
  58    have h_inner : HasDerivAt (fun v => t - v) (-1) u := by
  59      simpa using (hasDerivAt_const u t).sub (hasDerivAt_id u)
  60    simpa using (h_diff1.differentiableAt (x := t - u)).hasDerivAt.comp u h_inner
  61  have h_left :