Imports
Generalization of calculus results to InnerProductSpace'
@[ expose ] public section local notation "⟪" x ", " y "⟫" => inner ℝ x y lemma HasFDerivAt.inner' { f g : E → F }
{ f' g' : E →L[ ℝ ] F } ( hf : HasFDerivAt f f' x ) ( hg : HasFDerivAt g g' x ) :
HasFDerivAt ( fun t => ⟪ f t , g t ⟫ ) ( ( fderivInnerCLM' ( f x , g x ) ) . comp <| f' . prod g' ) x := by E : Type u_2 F : Type u_3 inst✝⁴ : NormedAddCommGroup E inst✝³ : NormedSpace ℝ E inst✝² : NormedAddCommGroup F inst✝¹ : NormedSpace ℝ F inst✝ : InnerProductSpace' ℝ F x : E f : E → F g : E → F f' : E →L[ ℝ ] F g' : E →L[ ℝ ] F hf : HasFDerivAt f f' x hg : HasFDerivAt g g' x ⊢ HasFDerivAt (fun t => ⟪ f t , g t ⟫ ) ( fderivInnerCLM' ( f x , g x ) ∘SL f' . prod g' ) x
exact isBoundedBilinearMap_inner' ( E := F )
|>. hasFDerivAt ( f x , g x ) |>. comp x ( hf . prodMk hg ) All goals completed! 🐙
lemma fderiv_inner_apply'
{ f g : E → F } { x : E }
( hf : DifferentiableAt ℝ f x ) ( hg : DifferentiableAt ℝ g x ) ( y : E ) :
fderiv ℝ ( fun t => ⟪ f t , g t ⟫ ) x y = ⟪ f x , fderiv ℝ g x y ⟫ + ⟪ fderiv ℝ f x y , g x ⟫ := by E : Type u_2 F : Type u_3 inst✝⁴ : NormedAddCommGroup E inst✝³ : NormedSpace ℝ E inst✝² : NormedAddCommGroup F inst✝¹ : NormedSpace ℝ F inst✝ : InnerProductSpace' ℝ F f : E → F g : E → F x : E hf : DifferentiableAt ℝ f x hg : DifferentiableAt ℝ g x y : E ⊢ ( fderiv ℝ (fun t => ⟪ f t , g t ⟫ ) x ) y = ⟪ f x , ( fderiv ℝ g x ) y ⟫ + ⟪ ( fderiv ℝ f x ) y , g x ⟫
rw [ ( hf . hasFDerivAt . inner' hg . hasFDerivAt ) . fderiv E : Type u_2 F : Type u_3 inst✝⁴ : NormedAddCommGroup E inst✝³ : NormedSpace ℝ E inst✝² : NormedAddCommGroup F inst✝¹ : NormedSpace ℝ F inst✝ : InnerProductSpace' ℝ F f : E → F g : E → F x : E hf : DifferentiableAt ℝ f x hg : DifferentiableAt ℝ g x y : E ⊢ ( fderivInnerCLM' ( f x , g x ) ∘SL ( fderiv ℝ f x ) . prod ( fderiv ℝ g x ) ) y =
⟪ f x , ( fderiv ℝ g x ) y ⟫ + ⟪ ( fderiv ℝ f x ) y , g x ⟫ E : Type u_2 F : Type u_3 inst✝⁴ : NormedAddCommGroup E inst✝³ : NormedSpace ℝ E inst✝² : NormedAddCommGroup F inst✝¹ : NormedSpace ℝ F inst✝ : InnerProductSpace' ℝ F f : E → F g : E → F x : E hf : DifferentiableAt ℝ f x hg : DifferentiableAt ℝ g x y : E ⊢ ( fderivInnerCLM' ( f x , g x ) ∘SL ( fderiv ℝ f x ) . prod ( fderiv ℝ g x ) ) y =
⟪ f x , ( fderiv ℝ g x ) y ⟫ + ⟪ ( fderiv ℝ f x ) y , g x ⟫ ] E : Type u_2 F : Type u_3 inst✝⁴ : NormedAddCommGroup E inst✝³ : NormedSpace ℝ E inst✝² : NormedAddCommGroup F inst✝¹ : NormedSpace ℝ F inst✝ : InnerProductSpace' ℝ F f : E → F g : E → F x : E hf : DifferentiableAt ℝ f x hg : DifferentiableAt ℝ g x y : E ⊢ ( fderivInnerCLM' ( f x , g x ) ∘SL ( fderiv ℝ f x ) . prod ( fderiv ℝ g x ) ) y =
⟪ f x , ( fderiv ℝ g x ) y ⟫ + ⟪ ( fderiv ℝ f x ) y , g x ⟫
rfl All goals completed! 🐙
lemma deriv_inner_apply'
{ f g : ℝ → F } { x : ℝ }
( hf : DifferentiableAt ℝ f x ) ( hg : DifferentiableAt ℝ g x ) :
deriv ( fun t => ⟪ f t , g t ⟫ ) x = ⟪ f x , deriv g x ⟫ + ⟪ deriv f x , g x ⟫ :=
fderiv_inner_apply' hf hg 1
@[ fun_prop ]
lemma DifferentiableAt.inner' { f g : E → F } { x }
( hf : DifferentiableAt ℝ f x ) ( hg : DifferentiableAt ℝ g x ) :
DifferentiableAt ℝ ( fun x => ⟪ f x , g x ⟫ ) x := by E : Type u_2 F : Type u_3 inst✝⁴ : NormedAddCommGroup E inst✝³ : NormedSpace ℝ E inst✝² : NormedAddCommGroup F inst✝¹ : NormedSpace ℝ F inst✝ : InnerProductSpace' ℝ F f : E → F g : E → F x : E hf : DifferentiableAt ℝ f x hg : DifferentiableAt ℝ g x ⊢ DifferentiableAt ℝ (fun x => ⟪ f x , g x ⟫ ) x
apply HasFDerivAt.differentiableAt h E : Type u_2 F : Type u_3 inst✝⁴ : NormedAddCommGroup E inst✝³ : NormedSpace ℝ E inst✝² : NormedAddCommGroup F inst✝¹ : NormedSpace ℝ F inst✝ : InnerProductSpace' ℝ F f : E → F g : E → F x : E hf : DifferentiableAt ℝ f x hg : DifferentiableAt ℝ g x ⊢ HasFDerivAt (fun x => ⟪ f x , g x ⟫ ) ?f' x f' E : Type u_2 F : Type u_3 inst✝⁴ : NormedAddCommGroup E inst✝³ : NormedSpace ℝ E inst✝² : NormedAddCommGroup F inst✝¹ : NormedSpace ℝ F inst✝ : InnerProductSpace' ℝ F f : E → F g : E → F x : E hf : DifferentiableAt ℝ f x hg : DifferentiableAt ℝ g x ⊢ E →L[ ℝ ] ℝ
exact hf . hasFDerivAt . inner' hg . hasFDerivAt All goals completed! 🐙