Theorem: MProd.fst.arg_self.revDerivUpdate_rule (SciLean/Core/Monads/MProd.lean)

State before:
K : Type u_2
inst✝³ : RCLike K
X : Type u_1
inst✝² : SemiInnerProductSpace K X
Y : Type u_1
inst✝¹ : SemiInnerProductSpace K Y
W : Type u_3
inst✝ : SemiInnerProductSpace K W
f : W → MProd X Y
hf : HasAdjDiff K f
⊢ (revDerivUpdate K fun w => (f w).fst) = fun w =>
    let xydxy := revDerivUpdate K f w;
    (xydxy.1.fst, fun dx' dw => xydxy.2 { fst := dx', snd := 0 } dw)
Tactic:
sorry_proof
State after:
no goals