Theorem: tendsto_log_mul_self_nhds_zero_left
File: Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean

Proof steps:
state_before: ⊢ Tendsto (fun x => log x * x) (𝓝[<] 0) (𝓝 0)
state_after: h : Tendsto (fun x => log x * x ^ 1) (𝓝[>] 0) (𝓝 0)
⊢ Tendsto (fun x => log x * x) (𝓝[<] 0) (𝓝 0)
tactic: have h := tendsto_log_mul_rpow_nhds_zero zero_lt_one
state_before: h : Tendsto (fun x => log x * x ^ 1) (𝓝[>] 0) (𝓝 0)
⊢ Tendsto (fun x => log x * x) (𝓝[<] 0) (𝓝 0)
state_after: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
⊢ Tendsto (fun x => log x * x) (𝓝[<] 0) (𝓝 0)
tactic: simp only [Real.rpow_one] at h
state_before: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
⊢ Tendsto (fun x => log x * x) (𝓝[<] 0) (𝓝 0)
state_after: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
⊢ Tendsto (fun x => log x * x) (𝓝[<] 0) (𝓝 0)
tactic: have h_eq : ∀ x ∈ Set.Iio 0, (- (fun x ↦ log x * x) ∘ (fun x ↦ |x|)) x = log x * x := by
    simp only [Set.mem_Iio, Pi.neg_apply, Function.comp_apply, log_abs]
    intro x hx
    simp only [abs_of_nonpos hx.le, mul_neg, neg_neg]
state_before: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
⊢ Tendsto (fun x => log x * x) (𝓝[<] 0) (𝓝 0)
state_after: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
⊢ Tendsto (-(fun x => log x * x) ∘ fun x => |x|) (𝓝[<] 0) (𝓝 0)
tactic: refine tendsto_nhdsWithin_congr h_eq ?_
state_before: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
⊢ Tendsto (-(fun x => log x * x) ∘ fun x => |x|) (𝓝[<] 0) (𝓝 0)
state_after: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
⊢ Tendsto (-(fun x => log x * x) ∘ fun x => |x|) (𝓝[<] 0) (𝓝 (-0))
tactic: nth_rewrite 3 [← neg_zero]
state_before: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
⊢ Tendsto (-(fun x => log x * x) ∘ fun x => |x|) (𝓝[<] 0) (𝓝 (-0))
state_after: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
⊢ 𝓝[<] 0 ≤ 𝓝[≠] 0
tactic: refine (h.comp (tendsto_abs_nhdsWithin_zero.mono_left ?_)).neg
state_before: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
⊢ 𝓝[<] 0 ≤ 𝓝[≠] 0
state_after: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
x : ℝ
hx : x ∈ Set.Iio 0
⊢ x ∈ {0}ᶜ
tactic: refine nhdsWithin_mono 0 (fun x hx ↦ ?_)
state_before: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
x : ℝ
hx : x ∈ Set.Iio 0
⊢ x ∈ {0}ᶜ
state_after: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
x : ℝ
hx : x < 0
⊢ x ∈ {0}ᶜ
tactic: simp only [Set.mem_Iio] at hx
state_before: h : Tendsto (fun x => log x * x) (𝓝[>] 0) (𝓝 0)
h_eq : ∀ x ∈ Set.Iio 0, (-(fun x => log x * x) ∘ fun x => |x|) x = log x * x
x : ℝ
hx : x < 0
⊢ x ∈ {0}ᶜ
state_after: no goals
tactic: simp only [Set.mem_compl_iff, Set.mem_singleton_iff, hx.ne, not_false_eq_true]