Update partialDeriv.lean

This commit is contained in:
Stefan Kebekus
2024-06-05 06:42:05 +02:00
parent 80486cc56c
commit 7741447426

View File

@@ -16,6 +16,14 @@ noncomputable def partialDeriv : E → (E → F) → (E → F) :=
fun v (fun f (fun w fderiv 𝕜 f w v)) fun v (fun f (fun w fderiv 𝕜 f w v))
theorem partialDeriv_eventuallyEq' {f₁ f₂ : E F} {x : E} (h : f₁ =[nhds x] f₂) : v : E, partialDeriv 𝕜 v f₁ =[nhds x] partialDeriv 𝕜 v f₂ := by
unfold partialDeriv
intro v
apply Filter.EventuallyEq.comp₂
exact Filter.EventuallyEq.fderiv h
simp
theorem partialDeriv_smul₁ {f : E F} {a : 𝕜} {v : E} : partialDeriv 𝕜 (a v) f = a partialDeriv 𝕜 v f := by theorem partialDeriv_smul₁ {f : E F} {a : 𝕜} {v : E} : partialDeriv 𝕜 (a v) f = a partialDeriv 𝕜 v f := by
unfold partialDeriv unfold partialDeriv
conv => conv =>
@@ -85,22 +93,34 @@ theorem partialDeriv_add₂_differentiableAt
rfl rfl
theorem partialDeriv_add₂_differentiableAt' theorem partialDeriv_add₂_contDiffAt
{f₁ f₂ : E F} {f₁ f₂ : E F}
{v : E} {v : E}
{x : E} {x : E}
(h₁ : DifferentiableAt 𝕜 f₁ x) (h₁ : ContDiffAt 𝕜 1 f₁ x)
(h₂ : DifferentiableAt 𝕜 f₂ x) : (h₂ : ContDiffAt 𝕜 1 f₂ x) :
partialDeriv 𝕜 v (f₁ + f₂) =[nhds x] (partialDeriv 𝕜 v f₁) + (partialDeriv 𝕜 v f₂) := by partialDeriv 𝕜 v (f₁ + f₂) =[nhds x] (partialDeriv 𝕜 v f₁) + (partialDeriv 𝕜 v f₂) := by
unfold partialDeriv obtain f₁', u₁, hu₁, _, hf₁' := contDiffAt_one_iff.1 h₁
have : f₁ + f = fun y f₁ y + f₂ y := by rfl obtain f₂', u, hu₂, _, hf₂' := contDiffAt_one_iff.1 h₂
rw [this]
rw [fderiv_add h₁ h₂]
rfl
apply Filter.eventuallyEq_iff_exists_mem.2
use u₁ u₂
constructor
· exact Filter.inter_mem hu₁ hu₂
· intro x hx
simp
apply partialDeriv_add₂_differentiableAt 𝕜
exact (hf₁' x (Set.mem_of_mem_inter_left hx)).differentiableAt
exact (hf₂' x (Set.mem_of_mem_inter_right hx)).differentiableAt
theorem partialDeriv_compContLin {f : E F} {l : F L[𝕜] G} {v : E} (h : Differentiable 𝕜 f) : partialDeriv 𝕜 v (l f) = l partialDeriv 𝕜 v f := by theorem partialDeriv_compContLin
{f : E F}
{l : F L[𝕜] G}
{v : E}
(h : Differentiable 𝕜 f) :
partialDeriv 𝕜 v (l f) = l partialDeriv 𝕜 v f := by
unfold partialDeriv unfold partialDeriv
conv => conv =>
@@ -208,15 +228,6 @@ theorem partialDeriv_eventuallyEq {f₁ f₂ : E → F} {x : E} (h : f₁ =ᶠ[n
exact fun v => rfl exact fun v => rfl
theorem partialDeriv_eventuallyEq' {f₁ f₂ : E F} {x : E} (h : f₁ =[nhds x] f₂) : v : E, partialDeriv 𝕜 v f₁ =[nhds x] partialDeriv 𝕜 v f₂ := by
unfold partialDeriv
intro v
let A : fderiv 𝕜 f₁ =[nhds x] fderiv 𝕜 f₂ := Filter.EventuallyEq.fderiv h
apply Filter.EventuallyEq.comp₂
exact A
simp
section restrictScalars section restrictScalars
theorem partialDeriv_smul'₂ theorem partialDeriv_smul'₂