File: Mathlib/Analysis/Calculus/LogDeriv.lean

full_name: logDeriv
code: /-- The logarithmic derivative of a function defined as `deriv f /f`. Note that it will be zero
at `x` if `f` is not DifferentiableAt `x`. -/
def logDeriv (f : 𝕜 → 𝕜') 
goal: 𝕜'

full_name: logDeriv_apply
code: theorem logDeriv_apply (f : 𝕜 → 𝕜') (x : 𝕜) : logDeriv f x = deriv f x / f x 
goal: logDeriv f x = deriv f x / f x

full_name: logDeriv_eq_zero_of_not_differentiableAt
code: lemma logDeriv_eq_zero_of_not_differentiableAt (f : 𝕜 → 𝕜') (x : 𝕜) (h : ¬DifferentiableAt 𝕜 f x) :
    logDeriv f x = 0 
goal: logDeriv f x = 0

full_name: logDeriv_id
code: @[simp]
theorem logDeriv_id (x : 𝕜) : logDeriv id x = 1 / x 
goal: logDeriv id x = 1 / x

full_name: logDeriv_id'
code: @[simp] theorem logDeriv_id' (x : 𝕜) : logDeriv (·) x = 1 / x 
goal: logDeriv (fun x => x) x = 1 / x

full_name: logDeriv_const
code: @[simp]
theorem logDeriv_const (a : 𝕜') : logDeriv (fun _ : 𝕜 ↦ a) = 0 
goal: (logDeriv fun x => a) = 0

full_name: logDeriv_mul
code: theorem logDeriv_mul {f g : 𝕜 → 𝕜'} (x : 𝕜) (hf : f x ≠ 0) (hg : g x ≠ 0)
    (hdf : DifferentiableAt 𝕜 f x) (hdg : DifferentiableAt 𝕜 g x) :
      logDeriv (fun z => f z * g z) x = logDeriv f x + logDeriv g x 
goal: logDeriv (fun z => f z * g z) x = logDeriv f x + logDeriv g x

full_name: logDeriv_mul_const
code: theorem logDeriv_mul_const {f : 𝕜 → 𝕜'} (x : 𝕜) (a : 𝕜') (ha : a ≠ 0):
    logDeriv (fun z => f z * a) x = logDeriv f x 
goal: logDeriv (fun z => f z * a) x = logDeriv f x

full_name: logDeriv_const_mul
code: theorem logDeriv_const_mul {f : 𝕜 → 𝕜'} (x : 𝕜) (a : 𝕜') (ha : a ≠ 0):
    logDeriv (fun z => a * f z) x = logDeriv f x 
goal: logDeriv (fun z => a * f z) x = logDeriv f x

full_name: logDeriv_prod
code: /-- The logarithmic derivative of a finite product is the sum of the logarithmic derivatives. -/
theorem logDeriv_prod {ι : Type*} (s : Finset ι) (f : ι → 𝕜 → 𝕜') (x : 𝕜) (hf : ∀ i ∈ s, f i x ≠ 0)
    (hd : ∀ i ∈ s, DifferentiableAt 𝕜 (f i) x) :
    logDeriv (∏ i ∈ s, f i ·) x = ∑ i ∈ s, logDeriv (f i) x 
goal: logDeriv (fun x => ∏ i ∈ s, f i x) x = ∑ i ∈ s, logDeriv (f i) x

full_name: logDeriv_fun_zpow
code: lemma logDeriv_fun_zpow {f : 𝕜 → 𝕜'} {x : 𝕜} (hdf : DifferentiableAt 𝕜 f x) (n : ℤ) :
    logDeriv (f · ^ n) x = n * logDeriv f x 
goal: logDeriv (fun x => f x ^ n) x = ↑n * logDeriv f x

full_name: logDeriv_fun_pow
code: lemma logDeriv_fun_pow {f : 𝕜 → 𝕜'} {x : 𝕜} (hdf : DifferentiableAt 𝕜 f x) (n : ℕ) :
    logDeriv (f · ^ n) x = n * logDeriv f x 
goal: logDeriv (fun x => f x ^ n) x = ↑n * logDeriv f x

full_name: logDeriv_zpow
code: @[simp]
lemma logDeriv_zpow (x : 𝕜) (n : ℤ) : logDeriv (· ^ n) x = n / x 
goal: logDeriv (fun x => x ^ n) x = ↑n / x

full_name: logDeriv_pow
code: @[simp]
lemma logDeriv_pow (x : 𝕜) (n : ℕ) : logDeriv (· ^ n) x = n / x 
goal: logDeriv (fun x => x ^ n) x = ↑n / x

full_name: logDeriv_inv
code: @[simp] lemma logDeriv_inv (x : 𝕜) : logDeriv (·⁻¹) x = -1 / x 
goal: logDeriv (fun x => x⁻¹) x = -1 / x

full_name: logDeriv_comp
code: theorem logDeriv_comp {f : 𝕜' → 𝕜'} {g : 𝕜 → 𝕜'} {x : 𝕜} (hf : DifferentiableAt 𝕜' f (g x))
    (hg : DifferentiableAt 𝕜 g x) : logDeriv (f ∘ g) x = logDeriv f (g x) * deriv g x 
goal: logDeriv (f ∘ g) x = logDeriv f (g x) * deriv g x