Theorem: MProd.mk.arg_fstsnd.semiAdjoint_rule (SciLean/Core/Monads/MProd.lean)

State before:
K : Type u_1
inst✝³ : RCLike K
X : Type u_3
inst✝² : SemiInnerProductSpace K X
Y : Type u_3
inst✝¹ : SemiInnerProductSpace K Y
W : Type u_2
inst✝ : SemiInnerProductSpace K W
f : W → X
g : W → Y
hf : HasSemiAdjoint K f
hg : HasSemiAdjoint K g
⊢ (semiAdjoint K fun w => { fst := f w, snd := g w }) = fun xy =>
    let w₁ := semiAdjoint K f xy.fst;
    let w₂ := semiAdjoint K g xy.snd;
    w₁ + w₂
Tactic:
sorry_proof
State after:
no goals