diff --git a/Nevanlinna/partialDeriv.lean b/Nevanlinna/partialDeriv.lean index 20be9da..79d11eb 100644 --- a/Nevanlinna/partialDeriv.lean +++ b/Nevanlinna/partialDeriv.lean @@ -9,13 +9,15 @@ import Mathlib.Analysis.Calculus.FDeriv.Comp import Mathlib.Analysis.Calculus.FDeriv.Linear import Mathlib.Analysis.Calculus.FDeriv.Symmetric +variable {๐•œ : Type*} [NontriviallyNormedField ๐•œ] +variable {E : Type*} [NormedAddCommGroup E] [NormedSpace โ„ E] +variable {F : Type*} [NormedAddCommGroup F] [NormedSpace โ„ F] -noncomputable def Real.partialDeriv : โ„‚ โ†’ (โ„‚ โ†’ โ„‚) โ†’ (โ„‚ โ†’ โ„‚) := +noncomputable def Real.partialDeriv : E โ†’ (E โ†’ F) โ†’ (E โ†’ F) := fun v โ†ฆ (fun f โ†ฆ (fun w โ†ฆ fderiv โ„ f w v)) - -theorem partialDeriv_smulโ‚ {f : โ„‚ โ†’ โ„‚} {a : โ„} {v : โ„‚} : Real.partialDeriv (a โ€ข v) f = a โ€ข Real.partialDeriv v f := by +theorem partialDeriv_smulโ‚ {f : E โ†’ F} {a : โ„} {v : E} : Real.partialDeriv (a โ€ข v) f = a โ€ข Real.partialDeriv v f := by unfold Real.partialDeriv conv => left @@ -23,7 +25,7 @@ theorem partialDeriv_smulโ‚ {f : โ„‚ โ†’ โ„‚} {a : โ„} {v : โ„‚} : Real.partia rw [map_smul] -theorem partialDeriv_addโ‚ {f : โ„‚ โ†’ โ„‚} {vโ‚ vโ‚‚ : โ„‚} : Real.partialDeriv (vโ‚ + vโ‚‚) f = (Real.partialDeriv vโ‚ f) + (Real.partialDeriv vโ‚‚ f) := by +theorem partialDeriv_addโ‚ {f : E โ†’ F} {vโ‚ vโ‚‚ : E} : Real.partialDeriv (vโ‚ + vโ‚‚) f = (Real.partialDeriv vโ‚ f) + (Real.partialDeriv vโ‚‚ f) := by unfold Real.partialDeriv conv => left @@ -31,7 +33,7 @@ theorem partialDeriv_addโ‚ {f : โ„‚ โ†’ โ„‚} {vโ‚ vโ‚‚ : โ„‚} : Real.partialDe rw [map_add] -theorem partialDeriv_smulโ‚‚ {f : โ„‚ โ†’ โ„‚} {a v : โ„‚} (h : Differentiable โ„ f) : Real.partialDeriv v (a โ€ข f) = a โ€ข Real.partialDeriv v f := by +theorem partialDeriv_smulโ‚‚ {f : E โ†’ F} {a : โ„} {v : E} (h : Differentiable โ„ f) : Real.partialDeriv v (a โ€ข f) = a โ€ข Real.partialDeriv v f := by unfold Real.partialDeriv have : a โ€ข f = fun y โ†ฆ a โ€ข f y := by rfl @@ -43,7 +45,7 @@ theorem partialDeriv_smulโ‚‚ {f : โ„‚ โ†’ โ„‚} {a v : โ„‚} (h : Differentiable rw [fderiv_const_smul (h w)] -theorem partialDeriv_addโ‚‚ {fโ‚ fโ‚‚ : โ„‚ โ†’ โ„‚} {v : โ„‚} (hโ‚ : Differentiable โ„ fโ‚) (hโ‚‚ : Differentiable โ„ fโ‚‚) : Real.partialDeriv v (fโ‚ + fโ‚‚) = (Real.partialDeriv v fโ‚) + (Real.partialDeriv v fโ‚‚) := by +theorem partialDeriv_addโ‚‚ {fโ‚ fโ‚‚ : E โ†’ F} {v : E} (hโ‚ : Differentiable โ„ fโ‚) (hโ‚‚ : Differentiable โ„ fโ‚‚) : Real.partialDeriv v (fโ‚ + fโ‚‚) = (Real.partialDeriv v fโ‚) + (Real.partialDeriv v fโ‚‚) := by unfold Real.partialDeriv have : fโ‚ + fโ‚‚ = fun y โ†ฆ fโ‚ y + fโ‚‚ y := by rfl @@ -55,7 +57,7 @@ theorem partialDeriv_addโ‚‚ {fโ‚ fโ‚‚ : โ„‚ โ†’ โ„‚} {v : โ„‚} (hโ‚ : Differen rw [fderiv_add (hโ‚ w) (hโ‚‚ w)] -theorem partialDeriv_compContLin {f : โ„‚ โ†’ โ„‚} {l : โ„‚ โ†’L[โ„] โ„‚} {v : โ„‚} (h : Differentiable โ„ f) : Real.partialDeriv v (l โˆ˜ f) = l โˆ˜ Real.partialDeriv v f := by +theorem partialDeriv_compContLin {f : E โ†’ F} {l : F โ†’L[โ„] F} {v : E} (h : Differentiable โ„ f) : Real.partialDeriv v (l โˆ˜ f) = l โˆ˜ Real.partialDeriv v f := by unfold Real.partialDeriv conv => @@ -67,7 +69,7 @@ theorem partialDeriv_compContLin {f : โ„‚ โ†’ โ„‚} {l : โ„‚ โ†’L[โ„] โ„‚} {v : rfl -theorem partialDeriv_contDiff {n : โ„•} {f : โ„‚ โ†’ โ„‚} (h : ContDiff โ„ (n + 1) f) : โˆ€ v : โ„‚, ContDiff โ„ n (Real.partialDeriv v f) := by +theorem partialDeriv_contDiff {n : โ„•} {f : E โ†’ F} (h : ContDiff โ„ (n + 1) f) : โˆ€ v : E, ContDiff โ„ n (Real.partialDeriv v f) := by unfold Real.partialDeriv intro v @@ -85,7 +87,7 @@ theorem partialDeriv_contDiff {n : โ„•} {f : โ„‚ โ†’ โ„‚} (h : ContDiff โ„ (n + exact contDiff_const -lemma partialDeriv_fderiv {f : โ„‚ โ†’ โ„‚} (hf : ContDiff โ„ 2 f) (z a b : โ„‚) : +lemma partialDeriv_fderiv {f : E โ†’ F} (hf : ContDiff โ„ 2 f) (z a b : E) : fderiv โ„ (fderiv โ„ f) z b a = Real.partialDeriv b (Real.partialDeriv a f) z := by unfold Real.partialDeriv @@ -95,8 +97,8 @@ lemma partialDeriv_fderiv {f : โ„‚ โ†’ โ„‚} (hf : ContDiff โ„ 2 f) (z a b : โ„‚ ยท simp -theorem partialDeriv_comm {f : โ„‚ โ†’ โ„‚} (h : ContDiff โ„ 2 f) : - โˆ€ vโ‚ vโ‚‚ : โ„‚, Real.partialDeriv vโ‚ (Real.partialDeriv vโ‚‚ f) = Real.partialDeriv vโ‚‚ (Real.partialDeriv vโ‚ f) := by +theorem partialDeriv_comm {f : E โ†’ F} (h : ContDiff โ„ 2 f) : + โˆ€ vโ‚ vโ‚‚ : E, Real.partialDeriv vโ‚ (Real.partialDeriv vโ‚‚ f) = Real.partialDeriv vโ‚‚ (Real.partialDeriv vโ‚ f) := by intro vโ‚ vโ‚‚ funext z