unfold revDeriv
R : Type u_1
inst✝² : RealScalar R
W : Type ?u.26483
inst✝¹ : Vec R W
U : Type u_2
inst✝ : SemiInnerProductSpace R U
u : U
x : U → R
hx : HasAdjDiffAt R x u
hu : 0 < x u
⊢ revDeriv R (fun u => sqrt (x u)) u =
    let xdx := revDeriv R x u;
    let x' := sqrt xdx.1;
    (x', fun dy => xdx.2 (dy / (2 * x')))
R : Type u_1
inst✝² : RealScalar R
W : Type ?u.26483
inst✝¹ : Vec R W
U : Type u_2
inst✝ : SemiInnerProductSpace R U
u : U
x : U → R
hx : HasAdjDiffAt R x u
hu : 0 < x u
⊢ ((fun u => sqrt (x u)) u, semiAdjoint R (cderiv R (fun u => sqrt (x u)) u)) =
    let xdx := (x u, semiAdjoint R (cderiv R x u));
    let x' := sqrt xdx.1;
    (x', fun dy => xdx.2 (dy / (2 * x')))