unfold revDeriv
R : Type u_3
C : Type u_1
inst✝² : Scalar R C
W : Type ?u.24680
inst✝¹ : Vec C W
U : Type u_2
inst✝ : SemiInnerProductSpace C U
x : U → C
hx : HasAdjDiff C x
⊢ (revDeriv C fun u => tanh (x u)) = fun u =>
    let xdx := revDeriv C x u;
    (tanh xdx.1, fun dy => xdx.2 ((starRingEnd C) (1 - tanh xdx.1 ^ 2) * dy))
R : Type u_3
C : Type u_1
inst✝² : Scalar R C
W : Type ?u.24680
inst✝¹ : Vec C W
U : Type u_2
inst✝ : SemiInnerProductSpace C U
x : U → C
hx : HasAdjDiff C x
⊢ (fun x_1 => ((fun u => tanh (x u)) x_1, semiAdjoint C (cderiv C (fun u => tanh (x u)) x_1))) = fun u =>
    let xdx := (x u, semiAdjoint C (cderiv C x u));
    (tanh xdx.1, fun dy => xdx.2 ((starRingEnd C) (1 - tanh xdx.1 ^ 2) * dy))