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

tactic: filter_upwards [eventually_gt_atTop 1] with x hx
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ deriv ε =ᶠ[atTop] fun x => -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
x : ℝ
hx : 1 < x
⊢ deriv ε x = -x⁻¹ / log x ^ 2

tactic: rw [deriv_smoothingFn hx]
state_before: case h
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : 1 < x
⊢ deriv ε x = -x⁻¹ / log x ^ 2
state_after: no goals

tactic: simp_rw [neg_div, div_eq_mul_inv, ← mul_inv, neg_inv, neg_mul]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ (fun x => -x⁻¹ / log x ^ 2) = fun x => (-x * log x ^ 2)⁻¹
state_after: no goals

tactic: refine IsLittleO.inv_rev ?_ ?_
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ (fun x => (-x * log x ^ 2)⁻¹) =o[atTop] fun x => (x * 1)⁻¹
state_after: case refine_1
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ (fun x => x * 1) =o[atTop] fun x => -x * log x ^ 2

case refine_2
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∀ᶠ (x : ℝ) in atTop, x * 1 = 0 → -x * log x ^ 2 = 0

tactic: refine IsBigO.mul_isLittleO
  (by rw [isBigO_neg_right]; aesop (add safe isBigO_refl)) ?_
state_before: case refine_1
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ (fun x => x * 1) =o[atTop] fun x => -x * log x ^ 2
state_after: case refine_1
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ (fun x => 1) =o[atTop] fun x => log x ^ 2

tactic: rw [isLittleO_one_left_iff]
state_before: case refine_1
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ (fun x => 1) =o[atTop] fun x => log x ^ 2
state_after: case refine_1
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ Tendsto (fun x => ‖log x ^ 2‖) atTop atTop

tactic: exact Tendsto.comp tendsto_norm_atTop_atTop
  <| Tendsto.comp (tendsto_pow_atTop (by norm_num)) tendsto_log_atTop
state_before: case refine_1
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ Tendsto (fun x => ‖log x ^ 2‖) atTop atTop
state_after: no goals

tactic: rw [isBigO_neg_right]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ (fun x => x) =O[atTop] Neg.neg
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ (fun x => x) =O[atTop] fun x => x

tactic: aesop (add safe isBigO_refl)
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ (fun x => x) =O[atTop] fun x => x
state_after: no goals

tactic: norm_num
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ 2 ≠ 0
state_after: no goals

tactic: exact Filter.eventually_of_forall (fun x hx => by rw [mul_one] at hx; simp [hx])
state_before: case refine_2
α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∀ᶠ (x : ℝ) in atTop, x * 1 = 0 → -x * log x ^ 2 = 0
state_after: no goals

tactic: rw [mul_one] at hx
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : x * 1 = 0
⊢ -x * log x ^ 2 = 0
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : x = 0
⊢ -x * log x ^ 2 = 0

tactic: simp [hx]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
x : ℝ
hx : x = 0
⊢ -x * log x ^ 2 = 0
state_after: no goals

tactic: simp
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ (fun x => (x * 1)⁻¹) = fun x => x⁻¹
state_after: no goals