funext x
R✝ : Type ?u.10194
C : Type ?u.10193
inst✝⁶ : Scalar R✝ C
inst✝⁵ : RealScalar R✝
W✝ : Type ?u.10203
inst✝⁴ : Vec C W✝
U✝ : Type ?u.10226
inst✝³ : SemiInnerProductSpace C U✝
R : Type u_1
inst✝² : RealScalar R
W : Type u_2
inst✝¹ : Vec R W
U : Type ?u.10276
inst✝ : SemiInnerProductSpace R U
x : W → R
hx : CDifferentiable R x
hw : ∀ (w : W), x w ≠ 0
⊢ (cderiv R fun w => log (x w)) = fun w dw =>
    let xdx := fwdDeriv R x w dw;
    xdx.2 / abs xdx.1
case h
R✝ : Type ?u.10194
C : Type ?u.10193
inst✝⁶ : Scalar R✝ C
inst✝⁵ : RealScalar R✝
W✝ : Type ?u.10203
inst✝⁴ : Vec C W✝
U✝ : Type ?u.10226
inst✝³ : SemiInnerProductSpace C U✝
R : Type u_1
inst✝² : RealScalar R
W : Type u_2
inst✝¹ : Vec R W
U : Type ?u.10276
inst✝ : SemiInnerProductSpace R U
x✝ : W → R
hx : CDifferentiable R x✝
hw : ∀ (w : W), x✝ w ≠ 0
x : W
⊢ cderiv R (fun w => log (x✝ w)) x = fun dw =>
    let xdx := fwdDeriv R x✝ x dw;
    xdx.2 / abs xdx.1