44 lines
1.4 KiB
Plaintext
44 lines
1.4 KiB
Plaintext
import Mathlib.Analysis.Calculus.LineDeriv.Basic
|
||
import Mathlib.Analysis.Complex.RealDeriv
|
||
|
||
variable {z : ℂ} {f : ℂ → ℂ}
|
||
|
||
|
||
theorem CauchyRiemann₁ : (DifferentiableAt ℂ f z)
|
||
→ (fderiv ℝ f z) Complex.I = Complex.I * (fderiv ℝ f z) 1 := by
|
||
intro h
|
||
rw [DifferentiableAt.fderiv_restrictScalars ℝ h]
|
||
nth_rewrite 1 [← mul_one Complex.I]
|
||
exact ContinuousLinearMap.map_smul_of_tower (fderiv ℂ f z) Complex.I 1
|
||
|
||
|
||
theorem CauchyRiemann₂ : (DifferentiableAt ℂ f z)
|
||
→ lineDeriv ℝ f z Complex.I = Complex.I * lineDeriv ℝ f z 1 := by
|
||
intro h
|
||
rw [DifferentiableAt.lineDeriv_eq_fderiv (h.restrictScalars ℝ)]
|
||
rw [DifferentiableAt.lineDeriv_eq_fderiv (h.restrictScalars ℝ)]
|
||
exact CauchyRiemann₁ h
|
||
|
||
|
||
theorem CauchyRiemann₃ : (DifferentiableAt ℂ f z)
|
||
→ (lineDeriv ℝ (Complex.reCLM ∘ f) z 1 = lineDeriv ℝ (Complex.imCLM ∘ f) z Complex.I)
|
||
∧ (lineDeriv ℝ (Complex.reCLM ∘ f) z Complex.I = -lineDeriv ℝ (Complex.imCLM ∘ f) z 1)
|
||
:= by
|
||
|
||
intro h
|
||
|
||
have ContinuousLinearMap.comp_lineDeriv : ∀ w : ℂ, ∀ l : ℂ →L[ℝ] ℝ, lineDeriv ℝ (l ∘ f) z w = l ((fderiv ℝ f z) w) := by
|
||
intro w l
|
||
rw [DifferentiableAt.lineDeriv_eq_fderiv]
|
||
rw [fderiv.comp]
|
||
simp
|
||
fun_prop
|
||
exact h.restrictScalars ℝ
|
||
apply (ContinuousLinearMap.differentiableAt l).comp
|
||
exact h.restrictScalars ℝ
|
||
|
||
repeat
|
||
rw [ContinuousLinearMap.comp_lineDeriv]
|
||
rw [CauchyRiemann₁ h, Complex.I_mul]
|
||
simp
|