funext
K : Type
inst✝⁹ : RCLike K
m : Type → Type
m' : outParam (Type → Type)
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : RevDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
S : Type
inst✝³ : SemiInnerProductSpace K S
X : Type ?u.221038
inst✝² : SemiInnerProductSpace K X
Y : Type ?u.221049
inst✝¹ : SemiInnerProductSpace K Y
Z : Type ?u.221060
inst✝ : SemiInnerProductSpace K Z
⊢ revDerivValM K get = do
    let __do_lift ← get
    pure (__do_lift, fun ds => modify fun ds' => ds + ds')
case h
K : Type
inst✝⁹ : RCLike K
m : Type → Type
m' : outParam (Type → Type)
inst✝⁸ : Monad m
inst✝⁷ : Monad m'
inst✝⁶ : RevDerivMonad K m m'
inst✝⁵ : LawfulMonad m
inst✝⁴ : LawfulMonad m'
S : Type
inst✝³ : SemiInnerProductSpace K S
X : Type ?u.221038
inst✝² : SemiInnerProductSpace K X
Y : Type ?u.221049
inst✝¹ : SemiInnerProductSpace K Y
Z : Type ?u.221060
inst✝ : SemiInnerProductSpace K Z
x✝ : S
⊢ revDerivValM K get x✝ = (get >>= fun __do_lift => pure (__do_lift, fun ds => modify fun ds' => ds + ds')) x✝