Theorem: deriv.ofReal_comp (EulerProducts/Auxiliary.lean)

State before:
z : ℝ
f : ℝ → ℝ
⊢ deriv (fun y => ↑(f y)) z = ↑(deriv f z)
Tactic:
by_cases hf : DifferentiableAt ℝ f z
State after:
case pos
z : ℝ
f : ℝ → ℝ
hf : DifferentiableAt ℝ f z
⊢ deriv (fun y => ↑(f y)) z = ↑(deriv f z)

case neg
z : ℝ
f : ℝ → ℝ
hf : ¬DifferentiableAt ℝ f z
⊢ deriv (fun y => ↑(f y)) z = ↑(deriv f z)

State before:
case pos
z : ℝ
f : ℝ → ℝ
hf : DifferentiableAt ℝ f z
⊢ deriv (fun y => ↑(f y)) z = ↑(deriv f z)
Tactic:
exact hf.hasDerivAt.ofReal_comp.deriv
State after:
no goals

State before:
case neg
z : ℝ
f : ℝ → ℝ
hf : ¬DifferentiableAt ℝ f z
⊢ deriv (fun y => ↑(f y)) z = ↑(deriv f z)
Tactic:
have hf' := mt DifferentiableAt.ofReal_comp_iff.mp hf
State after:
case neg
z : ℝ
f : ℝ → ℝ
hf : ¬DifferentiableAt ℝ f z
hf' : ¬DifferentiableAt ℝ (fun y => ↑(f y)) z
⊢ deriv (fun y => ↑(f y)) z = ↑(deriv f z)

State before:
case neg
z : ℝ
f : ℝ → ℝ
hf : ¬DifferentiableAt ℝ f z
hf' : ¬DifferentiableAt ℝ (fun y => ↑(f y)) z
⊢ deriv (fun y => ↑(f y)) z = ↑(deriv f z)
Tactic:
rw [deriv_zero_of_not_differentiableAt hf, deriv_zero_of_not_differentiableAt hf',
  Complex.ofReal_zero]
State after:
no goals