Theorem: AkraBazziRecurrence.eventually_deriv_rpow_p_mul_one_add_smoothingFn
File: Mathlib/Computability/AkraBazzi/AkraBazzi.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
p : ℝ
⊢ (deriv fun x => x ^ p * (1 + ε x)) =ᶠ[atTop] fun x =>
    deriv (fun x => x ^ p) x * (1 + ε x) + x ^ p * deriv (fun x => 1 + ε x) x
state_after: case h
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
p x : ℝ
hx : 1 < x
⊢ deriv (fun x => x ^ p * (1 + ε x)) x = deriv (fun x => x ^ p) x * (1 + ε x) + x ^ p * deriv (fun x => 1 + ε x) x
tactic: filter_upwards [eventually_gt_atTop 1] with x hx
state_before: case h
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
p x : ℝ
hx : 1 < x
⊢ deriv (fun x => x ^ p * (1 + ε x)) x = deriv (fun x => x ^ p) x * (1 + ε x) + x ^ p * deriv (fun x => 1 + ε x) x
state_after: case h.hc
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
p x : ℝ
hx : 1 < x
⊢ DifferentiableAt ℝ (fun x => x ^ p) x

case h.hd
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
p x : ℝ
hx : 1 < x
⊢ DifferentiableAt ℝ (fun x => 1 + ε x) x
tactic: rw [deriv_mul]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
p : ℝ
⊢ (fun x => deriv (fun x => x ^ p) x * (1 + ε x) + x ^ p * deriv (fun x => 1 + ε x) x) =ᶠ[atTop] fun x =>
    p * x ^ (p - 1) * (1 + ε x) - x ^ p * (x⁻¹ / log x ^ 2)
state_after: case h
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
p x : ℝ
hx : 1 < x
hderiv : deriv (fun x => 1 + ε x) x = -x⁻¹ / log x ^ 2
⊢ deriv (fun x => x ^ p) x * (1 + ε x) + x ^ p * deriv (fun x => 1 + ε x) x =
    p * x ^ (p - 1) * (1 + ε x) - x ^ p * (x⁻¹ / log x ^ 2)
tactic: filter_upwards [eventually_gt_atTop 1, eventually_deriv_one_add_smoothingFn]
              with x hx hderiv
state_before: case h
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
p x : ℝ
hx : 1 < x
hderiv : deriv (fun x => 1 + ε x) x = -x⁻¹ / log x ^ 2
⊢ deriv (fun x => x ^ p) x * (1 + ε x) + x ^ p * deriv (fun x => 1 + ε x) x =
    p * x ^ (p - 1) * (1 + ε x) - x ^ p * (x⁻¹ / log x ^ 2)
state_after: no goals
tactic: simp [hderiv, Real.deriv_rpow_const (Or.inl <| by positivity), neg_div, sub_eq_add_neg]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
p : ℝ
⊢ (fun x => p * x ^ (p - 1) * (1 + ε x) - x ^ p * (x⁻¹ / log x ^ 2)) =ᶠ[atTop] fun x =>
    p * x ^ (p - 1) * (1 + ε x) - x ^ (p - 1) / log x ^ 2
state_after: case h
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
p x : ℝ
hx : 0 < x
⊢ p * x ^ (p - 1) * (1 + ε x) - x ^ p * (x⁻¹ / log x ^ 2) = p * x ^ (p - 1) * (1 + ε x) - x ^ (p - 1) / log x ^ 2
tactic: filter_upwards [eventually_gt_atTop 0] with x hx
state_before: case h
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
p x : ℝ
hx : 0 < x
⊢ p * x ^ (p - 1) * (1 + ε x) - x ^ p * (x⁻¹ / log x ^ 2) = p * x ^ (p - 1) * (1 + ε x) - x ^ (p - 1) / log x ^ 2
state_after: no goals
tactic: simp [mul_div, ← Real.rpow_neg_one, ← Real.rpow_add (by positivity), sub_eq_add_neg]