45 lines
1.3 KiB
Plaintext
45 lines
1.3 KiB
Plaintext
import Mathlib.Data.Fin.Tuple.Basic
|
||
import Mathlib.Analysis.Complex.Basic
|
||
import Mathlib.Analysis.Complex.TaylorSeries
|
||
import Mathlib.Analysis.Calculus.LineDeriv.Basic
|
||
import Mathlib.Analysis.Calculus.ContDiff.Basic
|
||
import Mathlib.Analysis.Calculus.ContDiff.Defs
|
||
import Mathlib.Analysis.Calculus.FDeriv.Basic
|
||
import Mathlib.Analysis.Calculus.FDeriv.Symmetric
|
||
|
||
|
||
noncomputable def Real.partialDeriv : ℂ → (ℂ → ℂ) → (ℂ → ℂ) := by
|
||
intro v
|
||
intro f
|
||
exact fun w ↦ (fderiv ℝ f w) v
|
||
|
||
|
||
theorem partialDeriv_smul {f : ℂ → ℂ } {a v : ℂ} (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
|
||
rw [this]
|
||
|
||
conv =>
|
||
left
|
||
intro w
|
||
rw [fderiv_const_smul (h w)]
|
||
|
||
|
||
theorem partialDeriv_contDiff {n : ℕ} {f : ℂ → ℂ} (h : ContDiff ℝ (n + 1) f) : ∀ v : ℂ, ContDiff ℝ n (Real.partialDeriv v f) := by
|
||
unfold Real.partialDeriv
|
||
intro v
|
||
|
||
let A := (contDiff_succ_iff_fderiv.1 h).right
|
||
simp at A
|
||
|
||
have : (fun w => (fderiv ℝ f w) v) = (fun f => f v) ∘ (fun w => (fderiv ℝ f w)) := by
|
||
rfl
|
||
|
||
rw [this]
|
||
refine ContDiff.comp ?hg A
|
||
refine ContDiff.of_succ ?hg.h
|
||
refine ContDiff.clm_apply ?hg.h.hf ?hg.h.hg
|
||
exact contDiff_id
|
||
exact contDiff_const
|