Theorem: W21_approximation (PrimeNumberTheoremAnd/Sobolev.lean)

State before:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
n : ℕ
f : W21
g : trunc
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
let f' := f.deriv
State after:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
n : ℕ
f : W21
g : trunc
f' : W1 1 ℂ := W1.deriv f
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

State before:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
n : ℕ
f : W21
g : trunc
f' : W1 1 ℂ := W1.deriv f
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
let f'' := f'.deriv
State after:
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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
let g' := (g : CS 2 ℝ).deriv
State after:
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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
let g'' := g'.deriv
State after:
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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
let h R v := 1 - g.scale R v
State after:
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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
let h' R := - (g.scale R).deriv
State after:
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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
let h'' R := - (g.scale R).deriv.deriv
State after:
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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
have ch {R} : Continuous (fun v => (h R v : ℂ)) := continuous_ofReal.comp <| continuous_const.sub (CS.continuous _)
State after:
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)
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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)
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
have ch' {R} : Continuous (fun v => (h' R v : ℂ)) := continuous_ofReal.comp (CS.continuous _)
State after:
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)
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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)
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
have ch'' {R} : Continuous (fun v => (h'' R v : ℂ)) := continuous_ofReal.comp (CS.continuous _)
State after:
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)
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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)
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
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'] ; left ; rfl
State after:
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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
have dh' R v : HasDerivAt (h' R) (h'' R v) v := ((g.scale R).deriv.hasDerivAt v).neg
State after:
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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
have hh1 R v : |h R v| ≤ 1 := by
  by_cases hR : R = 0 <;> simp [h, hR, CS.scale, funscale] ; rw [abs_le] ; constructor <;>
  linarith [g.le_one (R⁻¹ * v), g.nonneg (R⁻¹ * v)]
State after:
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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
have vR v : Tendsto (fun R : ℝ => v * R⁻¹) atTop (𝓝 0) := by simpa using tendsto_inv_atTop_zero.const_mul v
State after:
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)
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)

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)
⊢ Tendsto (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) atTop (𝓝 0)
Tactic:
convert_to Tendsto (fun R => W21.norm (fun v => h R v * f v)) atTop (𝓝 0)
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)
⊢ (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) = fun R => W21.norm fun v => ↑(h R v) * f.toFun v

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)
⊢ Tendsto (fun R => W21.norm fun v => ↑(h R v) * f.toFun v) atTop (𝓝 0)

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)
⊢ Tendsto (fun R => W21.norm fun v => ↑(h R v) * f.toFun v) atTop (𝓝 0)
Tactic:
rw [show (0 : ℝ) = 0 + ((4 * π ^ 2)⁻¹ : ℝ) * 0 by simp]
State after:
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)
⊢ Tendsto (fun R => W21.norm fun v => ↑(h R v) * f.toFun v) atTop (𝓝 (0 + (4 * π ^ 2)⁻¹ * 0))

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)
⊢ Tendsto (fun R => W21.norm fun v => ↑(h R v) * f.toFun v) atTop (𝓝 (0 + (4 * π ^ 2)⁻¹ * 0))
Tactic:
refine Tendsto.add ?_ (Tendsto.const_mul _ ?_)
State after:
case refine_1
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)
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)

case refine_2
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)
⊢ Tendsto (fun k => ∫ (v : ℝ), ‖deriv (deriv fun v => ↑(h k v) * f.toFun v) v‖) atTop (𝓝 0)

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)
R v : ℝ
⊢ HasDerivAt (h R) ((h' R).toFun v) v
Tactic:
convert CS.hasDerivAt_scale (g : CS 2 ℝ) R v |>.const_sub 1 using 1
State after:
case h.e'_7
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)
R v : ℝ
⊢ (h' R).toFun v = -(R⁻¹ • deriv g.toFun (R⁻¹ • v))

State before:
case h.e'_7
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)
R v : ℝ
⊢ (h' R).toFun v = -(R⁻¹ • deriv g.toFun (R⁻¹ • v))
Tactic:
simp [h', CS.deriv_scale']
State after:
case h.e'_7
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)
R v : ℝ
⊢ g.deriv.toFun (R⁻¹ * v) = deriv g.toFun (R⁻¹ * v) ∨ R = 0

State before:
case h.e'_7
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)
R v : ℝ
⊢ g.deriv.toFun (R⁻¹ * v) = deriv g.toFun (R⁻¹ * v) ∨ R = 0
Tactic:
left
State after:
case h.e'_7.h
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)
R v : ℝ
⊢ g.deriv.toFun (R⁻¹ * v) = deriv g.toFun (R⁻¹ * v)

State before:
case h.e'_7.h
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)
R v : ℝ
⊢ g.deriv.toFun (R⁻¹ * v) = deriv g.toFun (R⁻¹ * v)
Tactic:
rfl
State after:
no goals

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
R v : ℝ
⊢ |h R v| ≤ 1
Tactic:
by_cases hR : R = 0 <;> simp [h, hR, CS.scale, funscale]
State after:
case neg
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
R v : ℝ
hR : ¬R = 0
⊢ |1 - g.toFun (R⁻¹ * v)| ≤ 1

State before:
case neg
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
R v : ℝ
hR : ¬R = 0
⊢ |1 - g.toFun (R⁻¹ * v)| ≤ 1
Tactic:
rw [abs_le]
State after:
case neg
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
R v : ℝ
hR : ¬R = 0
⊢ -1 ≤ 1 - g.toFun (R⁻¹ * v) ∧ 1 - g.toFun (R⁻¹ * v) ≤ 1

State before:
case neg
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
R v : ℝ
hR : ¬R = 0
⊢ -1 ≤ 1 - g.toFun (R⁻¹ * v) ∧ 1 - g.toFun (R⁻¹ * v) ≤ 1
Tactic:
constructor <;>
linarith [g.le_one (R⁻¹ * v), g.nonneg (R⁻¹ * v)]
State after:
no goals

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
v : ℝ
⊢ Tendsto (fun R => v * R⁻¹) atTop (𝓝 0)
Tactic:
simpa using tendsto_inv_atTop_zero.const_mul v
State after:
no goals

State before:
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)
⊢ (fun R => ‖f - W21.ofCS2 (g.scale R * f)‖) = fun R => W21.norm fun v => ↑(h R v) * f.toFun v
Tactic:
ext R
State after:
case h.e'_3.h
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)
R : ℝ
⊢ ‖f - W21.ofCS2 (g.scale R * f)‖ = W21.norm fun v => ↑(h R v) * f.toFun v

State before:
case h.e'_3.h
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)
R : ℝ
⊢ ‖f - W21.ofCS2 (g.scale R * f)‖ = W21.norm fun v => ↑(h R v) * f.toFun v
Tactic:
change W21.norm _ = _
State after:
case h.e'_3.h
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)
R : ℝ
⊢ (W21.norm fun v => (f - W21.ofCS2 (g.scale R * f)).toFun v) = W21.norm fun v => ↑(h R v) * f.toFun v

State before:
case h.e'_3.h
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)
R : ℝ
⊢ (W21.norm fun v => (f - W21.ofCS2 (g.scale R * f)).toFun v) = W21.norm fun v => ↑(h R v) * f.toFun v
Tactic:
congr
State after:
case h.e'_3.h.e_f
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)
R : ℝ
⊢ (fun v => (f - W21.ofCS2 (g.scale R * f)).toFun v) = fun v => ↑(h R v) * f.toFun v

State before:
case h.e'_3.h.e_f
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)
R : ℝ
⊢ (fun v => (f - W21.ofCS2 (g.scale R * f)).toFun v) = fun v => ↑(h R v) * f.toFun v
Tactic:
ext v
State after:
case h.e'_3.h.e_f.h
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)
R v : ℝ
⊢ (f - W21.ofCS2 (g.scale R * f)).toFun v = ↑(h R v) * f.toFun v

State before:
case h.e'_3.h.e_f.h
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)
R v : ℝ
⊢ (f - W21.ofCS2 (g.scale R * f)).toFun v = ↑(h R v) * f.toFun v
Tactic:
simp [h, sub_mul]
State after:
case h.e'_3.h.e_f.h
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)
R v : ℝ
⊢ (f - W21.ofCS2 (g.scale R * f)).toFun v = f.toFun v - ↑((g.scale R).toFun v) * f.toFun v

State before:
case h.e'_3.h.e_f.h
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)
R v : ℝ
⊢ (f - W21.ofCS2 (g.scale R * f)).toFun v = f.toFun v - ↑((g.scale R).toFun v) * f.toFun v
Tactic:
rfl
State after:
no goals

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)
⊢ 0 = 0 + (4 * π ^ 2)⁻¹ * 0
Tactic:
simp
State after:
no goals

State before:
case refine_1
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)
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)
Tactic:
let F R v := ‖h R v * f v‖
State after:
case refine_1
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 v) * f.toFun v‖
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)

State before:
case refine_1
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 v) * f.toFun v‖
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)
Tactic:
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⁻¹]
State after:
case refine_1
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)

State before:
case refine_1
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)
Tactic:
have e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume := by
  apply eventually_of_forall ; intro R
  exact (ch.mul f.continuous).norm.aestronglyMeasurable
State after:
case refine_1
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)

State before:
case refine_1
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)
Tactic:
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
State after:
case refine_1
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)

State before:
case refine_1
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)
Tactic:
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]
State after:
case refine_1
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
e4 : ∀ᵐ (a : ℝ), Tendsto (fun n => F n a) atTop (𝓝 0)
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)

State before:
case refine_1
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
e4 : ∀ᵐ (a : ℝ), Tendsto (fun n => F n a) atTop (𝓝 0)
⊢ Tendsto (fun R => ∫ (v : ℝ), ‖(fun v => ↑(h R v) * f.toFun v) v‖) atTop (𝓝 0)
Tactic:
simpa [F] using tendsto_integral_filter_of_dominated_convergence _ e1 e2 f.hf.norm e4
State after:
no goals

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 v) * f.toFun v‖
v : ℝ
⊢ ∀ᶠ (R : ℝ) in atTop, h R v = 0
Tactic:
filter_upwards [(vR v).eventually g.zero, eventually_ne_atTop 0] with R hR hR'
State after:
case h
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 v) * f.toFun v‖
v R : ℝ
hR : g.toFun (v * R⁻¹) = OfNat.ofNat 1 (v * R⁻¹)
hR' : R ≠ 0
⊢ h R v = 0

State before:
case h
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 v) * f.toFun v‖
v R : ℝ
hR : g.toFun (v * R⁻¹) = OfNat.ofNat 1 (v * R⁻¹)
hR' : R ≠ 0
⊢ h R v = 0
Tactic:
simp [h, hR, CS.scale, hR', funscale, mul_comm R⁻¹]
State after:
no goals

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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
⊢ ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
Tactic:
apply eventually_of_forall
State after:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
⊢ ∀ (x : ℝ), AEStronglyMeasurable (F x) volume

State before:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
⊢ ∀ (x : ℝ), AEStronglyMeasurable (F x) volume
Tactic:
intro R
State after:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
R : ℝ
⊢ AEStronglyMeasurable (F R) volume

State before:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
R : ℝ
⊢ AEStronglyMeasurable (F R) volume
Tactic:
exact (ch.mul f.continuous).norm.aestronglyMeasurable
State after:
no goals

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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
⊢ ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
Tactic:
apply eventually_of_forall
State after:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
⊢ ∀ (x : ℝ), ∀ᵐ (a : ℝ), ‖F x a‖ ≤ ‖f.toFun a‖

State before:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
⊢ ∀ (x : ℝ), ∀ᵐ (a : ℝ), ‖F x a‖ ≤ ‖f.toFun a‖
Tactic:
intro R
State after:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
⊢ ∀ᵐ (a : ℝ), ‖F R a‖ ≤ ‖f.toFun a‖

State before:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
⊢ ∀ᵐ (a : ℝ), ‖F R a‖ ≤ ‖f.toFun a‖
Tactic:
apply eventually_of_forall
State after:
case hp.hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
⊢ ∀ (x : ℝ), ‖F R x‖ ≤ ‖f.toFun x‖

State before:
case hp.hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
⊢ ∀ (x : ℝ), ‖F R x‖ ≤ ‖f.toFun x‖
Tactic:
intro v
State after:
case hp.hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R v : ℝ
⊢ ‖F R v‖ ≤ ‖f.toFun v‖

State before:
case hp.hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R v : ℝ
⊢ ‖F R v‖ ≤ ‖f.toFun v‖
Tactic:
simpa [F] using mul_le_mul (hh1 R v) le_rfl (by simp) zero_le_one
State after:
no goals

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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R v : ℝ
⊢ 0 ≤ Complex.abs (f.toFun v)
Tactic:
simp
State after:
no goals

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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
⊢ ∀ᵐ (a : ℝ), Tendsto (fun n => F n a) atTop (𝓝 0)
Tactic:
apply eventually_of_forall
State after:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
⊢ ∀ (x : ℝ), Tendsto (fun n => F n x) atTop (𝓝 0)

State before:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
⊢ ∀ (x : ℝ), Tendsto (fun n => F n x) atTop (𝓝 0)
Tactic:
intro v
State after:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
v : ℝ
⊢ Tendsto (fun n => F n v) atTop (𝓝 0)

State before:
case hp
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
v : ℝ
⊢ Tendsto (fun n => F n v) atTop (𝓝 0)
Tactic:
apply tendsto_nhds_of_eventually_eq
State after:
case hp.h
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
v : ℝ
⊢ ∀ᶠ (x' : ℝ) in atTop, F x' v = 0

State before:
case hp.h
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
v : ℝ
⊢ ∀ᶠ (x' : ℝ) in atTop, F x' v = 0
Tactic:
filter_upwards [eh v] with R hR
State after:
case h
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
v R : ℝ
hR : h R v = 0
⊢ F R v = 0

State before:
case h
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 v) * f.toFun v‖
eh : ∀ (v : ℝ), ∀ᶠ (R : ℝ) in atTop, h R v = 0
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F n a‖ ≤ ‖f.toFun a‖
v R : ℝ
hR : h R v = 0
⊢ F R v = 0
Tactic:
simp [F, hR]
State after:
no goals

State before:
case refine_2
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)
⊢ Tendsto (fun k => ∫ (v : ℝ), ‖deriv (deriv fun v => ↑(h k v) * f.toFun v) v‖) atTop (𝓝 0)
Tactic:
let F R v := ‖h'' R v * f v + 2 * h' R v * f' v + h R v * f'' v‖
State after:
case refine_2
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‖
⊢ Tendsto (fun k => ∫ (v : ℝ), ‖deriv (deriv fun v => ↑(h k v) * f.toFun v) v‖) atTop (𝓝 0)

State before:
case refine_2
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‖
⊢ Tendsto (fun k => ∫ (v : ℝ), ‖deriv (deriv fun v => ↑(h k v) * f.toFun v) v‖) atTop (𝓝 0)
Tactic:
convert_to Tendsto (fun R ↦ ∫ (v : ℝ), F R v) atTop (𝓝 0)
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‖
⊢ (fun k => ∫ (v : ℝ), ‖deriv (deriv fun v => ↑(h k v) * f.toFun v) v‖) = fun R => ∫ (v : ℝ), F R v

case refine_2
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‖
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)

State before:
case refine_2
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‖
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)
Tactic:
obtain ⟨c1, mg'⟩ := g'.bounded
State after:
case refine_2.intro
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)

State before:
case refine_2.intro
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)
Tactic:
obtain ⟨c2, mg''⟩ := g''.bounded
State after:
case refine_2.intro.intro
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)

State before:
case refine_2.intro.intro
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)
Tactic:
let bound v := c2 * ‖f v‖ + 2 * c1 * ‖f' v‖ + ‖f'' v‖
State after:
case refine_2.intro.intro
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)

State before:
case refine_2.intro.intro
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)
Tactic:
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)
State after:
case refine_2.intro.intro
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)

State before:
case refine_2.intro.intro
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (R : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F R a‖ ≤ bound a
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)
Tactic:
have e3 : Integrable bound volume := (((f.hf.norm).const_mul _).add ((f.hf'.norm).const_mul _)).add f.hf''.norm
State after:
case refine_2.intro.intro
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (R : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F R a‖ ≤ bound a
e3 : Integrable bound volume
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)

State before:
case refine_2.intro.intro
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
e2 : ∀ᶠ (R : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F R a‖ ≤ bound a
e3 : Integrable bound volume
e4 : ∀ᵐ (a : ℝ), Tendsto (fun n => F n a) atTop (𝓝 0)
⊢ Tendsto (fun R => ∫ (v : ℝ), F R v) atTop (𝓝 0)
Tactic:
simpa [F] using tendsto_integral_filter_of_dominated_convergence bound e1 e2 e3 e4
State after:
no goals

State before:
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‖
⊢ (fun k => ∫ (v : ℝ), ‖deriv (deriv fun v => ↑(h k v) * f.toFun v) v‖) = fun R => ∫ (v : ℝ), F R v
Tactic:
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
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‖
this :
  ∀ (R v : ℝ),
    deriv (deriv fun 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
⊢ (fun k => ∫ (v : ℝ), ‖deriv (deriv fun v => ↑(h k v) * f.toFun v) v‖) = fun R => ∫ (v : ℝ), F R v

State before:
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‖
this :
  ∀ (R v : ℝ),
    deriv (deriv fun 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
⊢ (fun k => ∫ (v : ℝ), ‖deriv (deriv fun v => ↑(h k v) * f.toFun v) v‖) = fun R => ∫ (v : ℝ), F R v
Tactic:
simp_rw [this]
State after:
no goals

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 : ℝ
⊢ deriv (deriv fun 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:
have df v : HasDerivAt f (f' v) v := f.hasDerivAt v
State after:
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
⊢ deriv (deriv fun 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

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
⊢ deriv (deriv fun 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:
have df' v : HasDerivAt f' (f'' v) v := f'.hasDerivAt v
State after:
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
⊢ deriv (deriv fun 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

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
⊢ deriv (deriv fun 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:
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)
State after:
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
⊢ deriv (deriv fun 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

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
⊢ deriv (deriv fun 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:
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)
State after:
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
⊢ deriv (deriv fun 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

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
⊢ deriv (deriv fun 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:
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)
State after:
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
⊢ deriv (deriv fun 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

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
⊢ deriv (deriv fun 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:
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)
State after:
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 (deriv fun 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

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 (deriv fun 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:
rw [d1]
State after:
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

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
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)

State before:
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)
Tactic:
ring
State after:
no goals

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
⊢ ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
Tactic:
apply eventually_of_forall
State after:
case hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
⊢ ∀ (x : ℝ), AEStronglyMeasurable (F x) volume

State before:
case hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
⊢ ∀ (x : ℝ), AEStronglyMeasurable (F x) volume
Tactic:
intro R
State after:
case hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
R : ℝ
⊢ AEStronglyMeasurable (F R) volume

State before:
case hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
R : ℝ
⊢ AEStronglyMeasurable (F R) volume
Tactic:
apply (Continuous.norm ?_).aestronglyMeasurable
State after:
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
R : ℝ
⊢ Continuous fun x => ↑((h'' R).toFun x) * f.toFun x + 2 * ↑((h' R).toFun x) * f'.toFun x + ↑(h R x) * f''.toFun x

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
R : ℝ
⊢ Continuous fun x => ↑((h'' R).toFun x) * f.toFun x + 2 * ↑((h' R).toFun x) * f'.toFun x + ↑(h R x) * f''.toFun x
Tactic:
exact ((ch''.mul f.continuous).add ((continuous_const.mul ch').mul f.deriv.continuous)).add
  (ch.mul f.deriv.deriv.continuous)
State after:
no goals

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
⊢ ∀ᶠ (R : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F R a‖ ≤ bound a
Tactic:
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 [h', CS.deriv_scale, abs_mul, abs_inv, abs_eq_self.mpr this] ; simp [CS.scale, funscale, hR']
  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)
State after:
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
⊢ ∀ᶠ (R : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F R a‖ ≤ bound a

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
⊢ ∀ᶠ (R : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F R a‖ ≤ bound a
Tactic:
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 [h'', CS.deriv_scale, CS.deriv_smul, abs_mul, abs_inv, abs_eq_self.mpr e1]
  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 [CS.scale, e3, funscale] ; apply mg''
State after:
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
⊢ ∀ᶠ (R : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F R a‖ ≤ bound a

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
⊢ ∀ᶠ (R : ℝ) in atTop, ∀ᵐ (a : ℝ), ‖F R a‖ ≤ bound a
Tactic:
filter_upwards [hc1, hc2] with R hc1 hc2
State after:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R : ℝ
hc1 : ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2 : ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
⊢ ∀ᵐ (a : ℝ), ‖F R a‖ ≤ bound a

State before:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R : ℝ
hc1 : ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2 : ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
⊢ ∀ᵐ (a : ℝ), ‖F R a‖ ≤ bound a
Tactic:
apply eventually_of_forall
State after:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R : ℝ
hc1 : ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2 : ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
⊢ ∀ (x : ℝ), ‖F R x‖ ≤ bound x

State before:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R : ℝ
hc1 : ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2 : ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
⊢ ∀ (x : ℝ), ‖F R x‖ ≤ bound x
Tactic:
intro v
State after:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R : ℝ
hc1 : ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2 : ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
v : ℝ
⊢ ‖F R v‖ ≤ bound v

State before:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R : ℝ
hc1 : ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2 : ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
v : ℝ
⊢ ‖F R v‖ ≤ bound v
Tactic:
specialize hc1 v
State after:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R : ℝ
hc2 : ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
v : ℝ
hc1 : |(h' R).toFun v| ≤ c1
⊢ ‖F R v‖ ≤ bound v

State before:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R : ℝ
hc2 : ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
v : ℝ
hc1 : |(h' R).toFun v| ≤ c1
⊢ ‖F R v‖ ≤ bound v
Tactic:
specialize hc2 v
State after:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R v : ℝ
hc1 : |(h' R).toFun v| ≤ c1
hc2 : |(h'' R).toFun v| ≤ c2
⊢ ‖F R v‖ ≤ bound v

State before:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R v : ℝ
hc1 : |(h' R).toFun v| ≤ c1
hc2 : |(h'' R).toFun v| ≤ c2
⊢ ‖F R v‖ ≤ bound v
Tactic:
simp only [F, bound, norm_norm]
State after:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R v : ℝ
hc1 : |(h' R).toFun v| ≤ c1
hc2 : |(h'' R).toFun v| ≤ c2
⊢ ‖↑((h'' R).toFun v) * f.toFun v + 2 * ↑((h' R).toFun v) * f'.toFun v + ↑(h R v) * f''.toFun v‖ ≤
    c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖

State before:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R v : ℝ
hc1 : |(h' R).toFun v| ≤ c1
hc2 : |(h'' R).toFun v| ≤ c2
⊢ ‖↑((h'' R).toFun v) * f.toFun v + 2 * ↑((h' R).toFun v) * f'.toFun v + ↑(h R v) * f''.toFun v‖ ≤
    c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
Tactic:
refine (norm_add_le _ _).trans ?_
State after:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R v : ℝ
hc1 : |(h' R).toFun v| ≤ c1
hc2 : |(h'' R).toFun v| ≤ c2
⊢ ‖↑((h'' R).toFun v) * f.toFun v + 2 * ↑((h' R).toFun v) * f'.toFun v‖ + ‖↑(h R v) * f''.toFun v‖ ≤
    c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖

State before:
case h.hp
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R v : ℝ
hc1 : |(h' R).toFun v| ≤ c1
hc2 : |(h'' R).toFun v| ≤ c2
⊢ ‖↑((h'' R).toFun v) * f.toFun v + 2 * ↑((h' R).toFun v) * f'.toFun v‖ + ‖↑(h R v) * f''.toFun v‖ ≤
    c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
Tactic:
apply add_le_add
State after:
case h.hp.h₁
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R v : ℝ
hc1 : |(h' R).toFun v| ≤ c1
hc2 : |(h'' R).toFun v| ≤ c2
⊢ ‖↑((h'' R).toFun v) * f.toFun v + 2 * ↑((h' R).toFun v) * f'.toFun v‖ ≤ c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖

case h.hp.h₂
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
hc2✝ : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
R v : ℝ
hc1 : |(h' R).toFun v| ≤ c1
hc2 : |(h'' R).toFun v| ≤ c2
⊢ ‖↑(h R v) * f''.toFun v‖ ≤ ‖f''.toFun v‖

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
⊢ ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
Tactic:
filter_upwards [eventually_ge_atTop 1] with R hR v
State after:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
⊢ |(h' R).toFun v| ≤ c1

State before:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
⊢ |(h' R).toFun v| ≤ c1
Tactic:
have hR' : R ≠ 0 := by linarith
State after:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
⊢ |(h' R).toFun v| ≤ c1

State before:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
⊢ |(h' R).toFun v| ≤ c1
Tactic:
have : 0 ≤ R := by linarith
State after:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ |(h' R).toFun v| ≤ c1

State before:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ |(h' R).toFun v| ≤ c1
Tactic:
simp [h', CS.deriv_scale, abs_mul, abs_inv, abs_eq_self.mpr this]
State after:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ R⁻¹ * |(g.deriv.scale R).toFun v| ≤ c1

State before:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ R⁻¹ * |(g.deriv.scale R).toFun v| ≤ c1
Tactic:
simp [CS.scale, funscale, hR']
State after:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ R⁻¹ * |g.deriv.toFun (R⁻¹ * v)| ≤ c1

State before:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ R⁻¹ * |g.deriv.toFun (R⁻¹ * v)| ≤ c1
Tactic:
convert_to _ ≤ c1 * 1
State after:
case h.e'_4
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ c1 = c1 * 1

case h.convert_2
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ R⁻¹ * |g.deriv.toFun (R⁻¹ * v)| ≤ c1 * 1

State before:
case h.e'_4
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ c1 = c1 * 1

case h.convert_2
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ R⁻¹ * |g.deriv.toFun (R⁻¹ * v)| ≤ c1 * 1
Tactic:
simp
State after:
case h.convert_2
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ R⁻¹ * |g.deriv.toFun (R⁻¹ * v)| ≤ c1 * 1

State before:
case h.convert_2
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ R⁻¹ * |g.deriv.toFun (R⁻¹ * v)| ≤ c1 * 1
Tactic:
rw [mul_comm]
State after:
case h.convert_2
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ |g.deriv.toFun (R⁻¹ * v)| * R⁻¹ ≤ c1 * 1

State before:
case h.convert_2
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ |g.deriv.toFun (R⁻¹ * v)| * R⁻¹ ≤ c1 * 1
Tactic:
apply mul_le_mul (mg' _) (inv_le_of_inv_le (by linarith) (by simpa using hR)) (by positivity)
State after:
case h.convert_2
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ 0 ≤ c1

State before:
case h.convert_2
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ 0 ≤ c1
Tactic:
exact (abs_nonneg _).trans (mg' 0)
State after:
no goals

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
⊢ R ≠ 0
Tactic:
linarith
State after:
no goals

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
⊢ 0 ≤ R
Tactic:
linarith
State after:
no goals

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ 0 < 1
Tactic:
linarith
State after:
no goals

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ 1⁻¹ ≤ R
Tactic:
simpa using hR
State after:
no goals

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
R : ℝ
hR : 1 ≤ R
v : ℝ
hR' : R ≠ 0
this : 0 ≤ R
⊢ 0 ≤ R⁻¹
Tactic:
positivity
State after:
no goals

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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
⊢ ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h'' R).toFun v| ≤ c2
Tactic:
filter_upwards [eventually_ge_atTop 1] with R hR v
State after:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
R : ℝ
hR : 1 ≤ R
v : ℝ
⊢ |(h'' R).toFun v| ≤ c2

State before:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1 : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
R : ℝ
hR : 1 ≤ R
v : ℝ
⊢ |(h'' R).toFun v| ≤ c2
Tactic:
have e1 : 0 ≤ R := by linarith
State after:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1✝ : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
R : ℝ
hR : 1 ≤ R
v : ℝ
e1 : 0 ≤ R
⊢ |(h'' R).toFun v| ≤ c2

State before:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1✝ : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
R : ℝ
hR : 1 ≤ R
v : ℝ
e1 : 0 ≤ R
⊢ |(h'' R).toFun v| ≤ c2
Tactic:
have e2 : R⁻¹ ≤ 1 := inv_le_of_inv_le (by linarith) (by simpa using hR)
State after:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1✝ : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
R : ℝ
hR : 1 ≤ R
v : ℝ
e1 : 0 ≤ R
e2 : R⁻¹ ≤ 1
⊢ |(h'' R).toFun v| ≤ c2

State before:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1✝ : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
R : ℝ
hR : 1 ≤ R
v : ℝ
e1 : 0 ≤ R
e2 : R⁻¹ ≤ 1
⊢ |(h'' R).toFun v| ≤ c2
Tactic:
have e3 : R ≠ 0 := by linarith
State after:
case h
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‖
c1 : ℝ
mg' : ∀ (v : ℝ), ‖g'.toFun v‖ ≤ c1
c2 : ℝ
mg'' : ∀ (v : ℝ), ‖g''.toFun v‖ ≤ c2
bound : ℝ → ℝ := fun v => c2 * ‖f.toFun v‖ + 2 * c1 * ‖f'.toFun v‖ + ‖f''.toFun v‖
e1✝ : ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (F n) volume
hc1 : ∀ᶠ (R : ℝ) in atTop, ∀ (v : ℝ), |(h' R).toFun v| ≤ c1
R : ℝ
hR : 1 ≤ R
v : ℝ
e1 : 0 ≤ R
e2 : R⁻¹ ≤ 1
e3 : R ≠ 0
⊢ |(h'' R).toFun v| ≤ c2