Theorem: SciLean.HasSemiAdjoint.Finset.sum.arg_f.HasSemiAdjoint_rule
Proof state before:
K✝ : Type ?u.46786
inst✝¹⁸ : RCLike K✝
X✝ : Type ?u.46792
inst✝¹⁷ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.46805
inst✝¹⁶ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.46816
inst✝¹⁵ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.46827
inst✝¹⁴ : SemiInnerProductSpace K✝ W✝
ι✝¹ : Type ?u.46838
inst✝¹³ : IndexType ι✝¹
inst✝¹² : LawfulIndexType ι✝¹
inst✝¹¹ : DecidableEq ι✝¹
E✝ : ι✝¹ → Type ?u.46865
inst✝¹⁰ : (i : ι✝¹) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_2
inst✝⁹ : RCLike K
X : Type u_3
inst✝⁸ : SemiInnerProductSpace K X
Y : Type u_4
inst✝⁷ : SemiInnerProductSpace K Y
Z : Type ?u.46911
inst✝⁶ : SemiInnerProductSpace K Z
W : Type ?u.46922
inst✝⁵ : SemiInnerProductSpace K W
ι✝ : Type ?u.46933
inst✝⁴ : IndexType ι✝
inst✝³ : LawfulIndexType ι✝
inst✝² : DecidableEq ι✝
E : ι✝ → Type ?u.46960
inst✝¹ : (i : ι✝) → SemiInnerProductSpace K (E i)
ι : Type u_1
inst✝ : Fintype ι
f : X → ι → Y
x✝ : ∀ (i : ι), HasSemiAdjoint K fun x => f x i
A : Finset ι
⊢ HasSemiAdjoint K fun x => ∑ i in A, f x i
Tactic:
constructor
Proof state after:
case semiAdjoint_exists
K✝ : Type ?u.46786
inst✝¹⁸ : RCLike K✝
X✝ : Type ?u.46792
inst✝¹⁷ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.46805
inst✝¹⁶ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.46816
inst✝¹⁵ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.46827
inst✝¹⁴ : SemiInnerProductSpace K✝ W✝
ι✝¹ : Type ?u.46838
inst✝¹³ : IndexType ι✝¹
inst✝¹² : LawfulIndexType ι✝¹
inst✝¹¹ : DecidableEq ι✝¹
E✝ : ι✝¹ → Type ?u.46865
inst✝¹⁰ : (i : ι✝¹) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_2
inst✝⁹ : RCLike K
X : Type u_3
inst✝⁸ : SemiInnerProductSpace K X
Y : Type u_4
inst✝⁷ : SemiInnerProductSpace K Y
Z : Type ?u.46911
inst✝⁶ : SemiInnerProductSpace K Z
W : Type ?u.46922
inst✝⁵ : SemiInnerProductSpace K W
ι✝ : Type ?u.46933
inst✝⁴ : IndexType ι✝
inst✝³ : LawfulIndexType ι✝
inst✝² : DecidableEq ι✝
E : ι✝ → Type ?u.46960
inst✝¹ : (i : ι✝) → SemiInnerProductSpace K (E i)
ι : Type u_1
inst✝ : Fintype ι
f : X → ι → Y
x✝ : ∀ (i : ι), HasSemiAdjoint K fun x => f x i
A : Finset ι
⊢ ∃ f', ∀ (x : X) (y : Y), TestFunction x → ⟪y, ∑ i in A, f x i⟫_K = ⟪f' y, x⟫_K

case is_differentiable
K✝ : Type ?u.46786
inst✝¹⁸ : RCLike K✝
X✝ : Type ?u.46792
inst✝¹⁷ : SemiInnerProductSpace K✝ X✝
Y✝ : Type ?u.46805
inst✝¹⁶ : SemiInnerProductSpace K✝ Y✝
Z✝ : Type ?u.46816
inst✝¹⁵ : SemiInnerProductSpace K✝ Z✝
W✝ : Type ?u.46827
inst✝¹⁴ : SemiInnerProductSpace K✝ W✝
ι✝¹ : Type ?u.46838
inst✝¹³ : IndexType ι✝¹
inst✝¹² : LawfulIndexType ι✝¹
inst✝¹¹ : DecidableEq ι✝¹
E✝ : ι✝¹ → Type ?u.46865
inst✝¹⁰ : (i : ι✝¹) → SemiInnerProductSpace K✝ (E✝ i)
K : Type u_2
inst✝⁹ : RCLike K
X : Type u_3
inst✝⁸ : SemiInnerProductSpace K X
Y : Type u_4
inst✝⁷ : SemiInnerProductSpace K Y
Z : Type ?u.46911
inst✝⁶ : SemiInnerProductSpace K Z
W : Type ?u.46922
inst✝⁵ : SemiInnerProductSpace K W
ι✝ : Type ?u.46933
inst✝⁴ : IndexType ι✝
inst✝³ : LawfulIndexType ι✝
inst✝² : DecidableEq ι✝
E : ι✝ → Type ?u.46960
inst✝¹ : (i : ι✝) → SemiInnerProductSpace K (E i)
ι : Type u_1
inst✝ : Fintype ι
f : X → ι → Y
x✝ : ∀ (i : ι), HasSemiAdjoint K fun x => f x i
A : Finset ι
⊢ SciLean.CDifferentiable K fun x => ∑ i in A, f x i