fun_trans
case h
K : Type u_5
I : Type u_1
inst✝²⁵ : RCLike K
X : Type ?u.194158
inst✝²⁴ : SemiInnerProductSpace K X
Y : Type ?u.194171
inst✝²³ : SemiInnerProductSpace K Y
Z : Type ?u.194182
inst✝²² : SemiInnerProductSpace K Z
W : Type ?u.194193
inst✝²¹ : SemiInnerProductSpace K W
ι : Type u_2
inst✝²⁰ : IndexType ι
inst✝¹⁹ : LawfulIndexType ι
inst✝¹⁸ : DecidableEq ι
κ : Type ?u.194229
inst✝¹⁷ : IndexType κ
inst✝¹⁶ : LawfulIndexType κ
inst✝¹⁵ : DecidableEq κ
E : Type u_3
EI : I → Type u_4
inst✝¹⁴ : StructType E I EI
inst✝¹³ : IndexType I
inst✝¹² : LawfulIndexType I
inst✝¹¹ : DecidableEq I
inst✝¹⁰ : SemiInnerProductSpace K E
inst✝⁹ : (i : I) → SemiInnerProductSpace K (EI i)
inst✝⁸ : SemiInnerProductSpaceStruct K E I EI
F : Type ?u.194393
J : Type ?u.194396
FJ : J → Type ?u.194401
inst✝⁷ : StructType F J FJ
inst✝⁶ : IndexType J
inst✝⁵ : LawfulIndexType J
inst✝⁴ : DecidableEq J
inst✝³ : SemiInnerProductSpace K F
inst✝² : (j : J) → SemiInnerProductSpace K (FJ j)
inst✝¹ : SemiInnerProductSpaceStruct K F J FJ
inst✝ : DecidableEq I
i : ι
x : ι → E
⊢ (let ydf' := revDerivProj K I (fun f => f i) x;
    (ydf'.1, fun i de dx => dx + ydf'.2 i de)) =
    (x i, fun j dxj df i' => if i = i' then structModify j (fun xj => xj + dxj) (df i') else df i')
case h
K : Type u_5
I : Type u_1
inst✝²⁵ : RCLike K
X : Type ?u.194158
inst✝²⁴ : SemiInnerProductSpace K X
Y : Type ?u.194171
inst✝²³ : SemiInnerProductSpace K Y
Z : Type ?u.194182
inst✝²² : SemiInnerProductSpace K Z
W : Type ?u.194193
inst✝²¹ : SemiInnerProductSpace K W
ι : Type u_2
inst✝²⁰ : IndexType ι
inst✝¹⁹ : LawfulIndexType ι
inst✝¹⁸ : DecidableEq ι
κ : Type ?u.194229
inst✝¹⁷ : IndexType κ
inst✝¹⁶ : LawfulIndexType κ
inst✝¹⁵ : DecidableEq κ
E : Type u_3
EI : I → Type u_4
inst✝¹⁴ : StructType E I EI
inst✝¹³ : IndexType I
inst✝¹² : LawfulIndexType I
inst✝¹¹ : DecidableEq I
inst✝¹⁰ : SemiInnerProductSpace K E
inst✝⁹ : (i : I) → SemiInnerProductSpace K (EI i)
inst✝⁸ : SemiInnerProductSpaceStruct K E I EI
F : Type ?u.194393
J : Type ?u.194396
FJ : J → Type ?u.194401
inst✝⁷ : StructType F J FJ
inst✝⁶ : IndexType J
inst✝⁵ : LawfulIndexType J
inst✝⁴ : DecidableEq J
inst✝³ : SemiInnerProductSpace K F
inst✝² : (j : J) → SemiInnerProductSpace K (FJ j)
inst✝¹ : SemiInnerProductSpaceStruct K F J FJ
inst✝ : DecidableEq I
i : ι
x : ι → E
⊢ (fun i_1 de dx => Function.modify dx i (structModify i_1 fun xi' => xi' + de)) = fun j dxj df i' =>
    if i = i' then structModify j (fun xj => xj + dxj) (df i') else df i'