Theorem: W21_approximation
Proof state before:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
n : ℕ
f : W21
g : trunc
f' : W1 1 ℂ := W1.deriv f
f'' : W1 0 ℂ := f'.deriv
g' : CS 1 ℝ := g.deriv
g'' : CS 0 ℝ := g'.deriv
h : ℝ → ℝ → ℝ := fun R v => 1 - (g.scale R).toFun v
h' : ℝ → CS 1 ℝ := fun R => -(g.scale R).deriv
h'' : ℝ → CS 0 ℝ := fun R => -(g.scale R).deriv.deriv
ch : ∀ {R : ℝ}, Continuous fun v => ↑(h R v)
ch' : ∀ {R : ℝ}, Continuous fun v => ↑((h' R).toFun v)
ch'' : ∀ {R : ℝ}, Continuous fun v => ↑((h'' R).toFun v)
dh : ∀ (R v : ℝ), HasDerivAt (h R) ((h' R).toFun v) v
dh' : ∀ (R v : ℝ), HasDerivAt (h' R).toFun ((h'' R).toFun v) v
hh1 : ∀ (R v : ℝ), |h R v| ≤ 1
vR : ∀ (v : ℝ), Tendsto (fun R => v * R⁻¹) atTop (𝓝 0)
F : ℝ → ℝ → ℝ :=
  fun R v => ‖↑((h'' R).toFun v) * f.toFun v + 2 * ↑((h' R).toFun v) * f'.toFun v + ↑(h R v) * f''.toFun v‖
R v : ℝ
df : ∀ (v : ℝ), HasDerivAt f.toFun (f'.toFun v) v
df' : ∀ (v : ℝ), HasDerivAt f'.toFun (f''.toFun v) v
l3 : ∀ (v : ℝ), HasDerivAt (fun v => ↑(h R v) * f.toFun v) (↑((h' R).toFun v) * f.toFun v + ↑(h R v) * f'.toFun v) v
l5 :
  HasDerivAt (fun v => ↑((h' R).toFun v) * f.toFun v) (↑((h'' R).toFun v) * f.toFun v + ↑((h' R).toFun v) * f'.toFun v)
    v
l7 : HasDerivAt (fun v => ↑(h R v) * f'.toFun v) (↑((h' R).toFun v) * f'.toFun v + ↑(h R v) * f''.toFun v) v
d1 : (deriv fun v => ↑(h R v) * f.toFun v) = fun v => ↑((h' R).toFun v) * f.toFun v + ↑(h R v) * f'.toFun v
⊢ deriv (fun v => ↑((h' R).toFun v) * f.toFun v + ↑(h R v) * f'.toFun v) v =
    ↑((h'' R).toFun v) * f.toFun v + 2 * ↑((h' R).toFun v) * f'.toFun v + ↑(h R v) * f''.toFun v
Tactic:
convert (l5.add l7).deriv using 1
Proof state after:
case h.e'_3
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
n : ℕ
f : W21
g : trunc
f' : W1 1 ℂ := W1.deriv f
f'' : W1 0 ℂ := f'.deriv
g' : CS 1 ℝ := g.deriv
g'' : CS 0 ℝ := g'.deriv
h : ℝ → ℝ → ℝ := fun R v => 1 - (g.scale R).toFun v
h' : ℝ → CS 1 ℝ := fun R => -(g.scale R).deriv
h'' : ℝ → CS 0 ℝ := fun R => -(g.scale R).deriv.deriv
ch : ∀ {R : ℝ}, Continuous fun v => ↑(h R v)
ch' : ∀ {R : ℝ}, Continuous fun v => ↑((h' R).toFun v)
ch'' : ∀ {R : ℝ}, Continuous fun v => ↑((h'' R).toFun v)
dh : ∀ (R v : ℝ), HasDerivAt (h R) ((h' R).toFun v) v
dh' : ∀ (R v : ℝ), HasDerivAt (h' R).toFun ((h'' R).toFun v) v
hh1 : ∀ (R v : ℝ), |h R v| ≤ 1
vR : ∀ (v : ℝ), Tendsto (fun R => v * R⁻¹) atTop (𝓝 0)
F : ℝ → ℝ → ℝ :=
  fun R v => ‖↑((h'' R).toFun v) * f.toFun v + 2 * ↑((h' R).toFun v) * f'.toFun v + ↑(h R v) * f''.toFun v‖
R v : ℝ
df : ∀ (v : ℝ), HasDerivAt f.toFun (f'.toFun v) v
df' : ∀ (v : ℝ), HasDerivAt f'.toFun (f''.toFun v) v
l3 : ∀ (v : ℝ), HasDerivAt (fun v => ↑(h R v) * f.toFun v) (↑((h' R).toFun v) * f.toFun v + ↑(h R v) * f'.toFun v) v
l5 :
  HasDerivAt (fun v => ↑((h' R).toFun v) * f.toFun v) (↑((h'' R).toFun v) * f.toFun v + ↑((h' R).toFun v) * f'.toFun v)
    v
l7 : HasDerivAt (fun v => ↑(h R v) * f'.toFun v) (↑((h' R).toFun v) * f'.toFun v + ↑(h R v) * f''.toFun v) v
d1 : (deriv fun v => ↑(h R v) * f.toFun v) = fun v => ↑((h' R).toFun v) * f.toFun v + ↑(h R v) * f'.toFun v
⊢ ↑((h'' R).toFun v) * f.toFun v + 2 * ↑((h' R).toFun v) * f'.toFun v + ↑(h R v) * f''.toFun v =
    ↑((h'' R).toFun v) * f.toFun v + ↑((h' R).toFun v) * f'.toFun v +
      (↑((h' R).toFun v) * f'.toFun v + ↑(h R v) * f''.toFun v)