Working…
This commit is contained in:
parent
a5bf92552c
commit
77d1fd2ae4
|
@ -1,19 +1,22 @@
|
||||||
import Mathlib.Analysis.Complex.CauchyIntegral
|
|
||||||
import Mathlib.Analysis.Complex.Basic
|
|
||||||
import Mathlib.Analysis.Calculus.LineDeriv.Basic
|
|
||||||
import Mathlib.Analysis.Calculus.ContDiff.Defs
|
|
||||||
import Mathlib.Analysis.Calculus.FDeriv.Basic
|
|
||||||
import Mathlib.Analysis.Complex.RealDeriv
|
|
||||||
import Mathlib.Analysis.Calculus.ContDiff.Basic
|
|
||||||
import Mathlib.Analysis.Calculus.Deriv.Linear
|
|
||||||
import Mathlib.Analysis.Complex.Conformal
|
|
||||||
import Mathlib.Analysis.Calculus.Conformal.NormedSpace
|
import Mathlib.Analysis.Calculus.Conformal.NormedSpace
|
||||||
|
import Mathlib.Analysis.Calculus.ContDiff.Basic
|
||||||
|
import Mathlib.Analysis.Calculus.ContDiff.Defs
|
||||||
|
import Mathlib.Analysis.Calculus.Deriv.Linear
|
||||||
import Mathlib.Analysis.Calculus.FDeriv.Basic
|
import Mathlib.Analysis.Calculus.FDeriv.Basic
|
||||||
|
import Mathlib.Analysis.Calculus.FDeriv.Comp
|
||||||
|
import Mathlib.Analysis.Calculus.FDeriv.Linear
|
||||||
import Mathlib.Analysis.Calculus.FDeriv.RestrictScalars
|
import Mathlib.Analysis.Calculus.FDeriv.RestrictScalars
|
||||||
|
import Mathlib.Analysis.Calculus.LineDeriv.Basic
|
||||||
|
import Mathlib.Analysis.Complex.Basic
|
||||||
|
import Mathlib.Analysis.Complex.CauchyIntegral
|
||||||
|
import Mathlib.Analysis.Complex.Conformal
|
||||||
|
import Mathlib.Analysis.Complex.RealDeriv
|
||||||
|
|
||||||
variable {z : ℂ} {f : ℂ → ℂ} {h : DifferentiableAt ℂ f z}
|
variable {z : ℂ} {f : ℂ → ℂ}
|
||||||
|
|
||||||
theorem CauchyRiemann₁ : fderiv ℝ f z Complex.I = Complex.I * fderiv ℝ f z 1 := by
|
theorem CauchyRiemann₁ : (DifferentiableAt ℂ f z)
|
||||||
|
→ (fderiv ℝ f z) Complex.I = Complex.I * (fderiv ℝ f z) 1 := by
|
||||||
|
intro h
|
||||||
let A := fderiv ℂ f z
|
let A := fderiv ℂ f z
|
||||||
have t₁ : A (Complex.I • 1) = Complex.I • (A 1) := by
|
have t₁ : A (Complex.I • 1) = Complex.I • (A 1) := by
|
||||||
exact ContinuousLinearMap.map_smul_of_tower A Complex.I 1
|
exact ContinuousLinearMap.map_smul_of_tower A Complex.I 1
|
||||||
|
@ -33,3 +36,90 @@ theorem CauchyRiemann₁ : fderiv ℝ f z Complex.I = Complex.I * fderiv ℝ f z
|
||||||
exact DifferentiableAt.fderiv_restrictScalars ℝ h
|
exact DifferentiableAt.fderiv_restrictScalars ℝ h
|
||||||
rw [t₃]
|
rw [t₃]
|
||||||
exact t₂c
|
exact t₂c
|
||||||
|
|
||||||
|
theorem CauchyRiemann₂ : (DifferentiableAt ℂ f z)
|
||||||
|
→ lineDeriv ℝ f z Complex.I = Complex.I * lineDeriv ℝ f z 1 := by
|
||||||
|
intro h
|
||||||
|
|
||||||
|
have : lineDeriv ℝ f z Complex.I = (fderiv ℝ f z) Complex.I := by
|
||||||
|
apply DifferentiableAt.lineDeriv_eq_fderiv
|
||||||
|
apply h.restrictScalars ℝ
|
||||||
|
rw [this]
|
||||||
|
|
||||||
|
have : lineDeriv ℝ f z 1 = (fderiv ℝ f z) 1 := by
|
||||||
|
apply DifferentiableAt.lineDeriv_eq_fderiv
|
||||||
|
apply h.restrictScalars ℝ
|
||||||
|
rw [this]
|
||||||
|
|
||||||
|
exact CauchyRiemann₁ h
|
||||||
|
|
||||||
|
theorem CauchyRiemann₃ : (DifferentiableAt ℂ f z)
|
||||||
|
→ lineDeriv ℝ (Complex.reCLM ∘ f) z 1 = lineDeriv ℝ (Complex.imCLM ∘ f) z Complex.I := by
|
||||||
|
|
||||||
|
-- Proof starts here
|
||||||
|
intro h
|
||||||
|
|
||||||
|
have t₀₀ : DifferentiableAt ℝ f z := by
|
||||||
|
exact h.restrictScalars ℝ
|
||||||
|
|
||||||
|
have t₀₁ : DifferentiableAt ℝ Complex.reCLM (f z) := by
|
||||||
|
have : ∀ w, DifferentiableAt ℝ Complex.reCLM w := by
|
||||||
|
intro w
|
||||||
|
refine Differentiable.differentiableAt ?h
|
||||||
|
exact ContinuousLinearMap.differentiable (Complex.reCLM : ℂ →L[ℝ] ℝ)
|
||||||
|
exact this (f z)
|
||||||
|
|
||||||
|
have t₁ : DifferentiableAt ℝ (Complex.reCLM ∘ f) z := by
|
||||||
|
apply t₀₁.comp
|
||||||
|
exact t₀₀
|
||||||
|
|
||||||
|
have t₂ : lineDeriv ℝ (Complex.reCLM ∘ f) z 1 = (fderiv ℝ (Complex.reCLM ∘ f) z) 1 := by
|
||||||
|
apply DifferentiableAt.lineDeriv_eq_fderiv
|
||||||
|
exact t₁
|
||||||
|
rw [t₂]
|
||||||
|
|
||||||
|
have s₀₀ : DifferentiableAt ℝ f z := by
|
||||||
|
exact h.restrictScalars ℝ
|
||||||
|
|
||||||
|
have s₀₁ : DifferentiableAt ℝ Complex.imCLM (f z) := by
|
||||||
|
have : ∀ w, DifferentiableAt ℝ Complex.imCLM w := by
|
||||||
|
intro w
|
||||||
|
apply Differentiable.differentiableAt
|
||||||
|
exact ContinuousLinearMap.differentiable (Complex.imCLM : ℂ →L[ℝ] ℝ)
|
||||||
|
exact this (f z)
|
||||||
|
|
||||||
|
have s₁ : DifferentiableAt ℝ (Complex.im ∘ f) z := by
|
||||||
|
apply s₀₁.comp
|
||||||
|
exact s₀₀
|
||||||
|
|
||||||
|
have s₂ : lineDeriv ℝ (Complex.imCLM ∘ f) z Complex.I = (fderiv ℝ (Complex.imCLM ∘ f) z) Complex.I := by
|
||||||
|
apply DifferentiableAt.lineDeriv_eq_fderiv
|
||||||
|
exact s₁
|
||||||
|
rw [s₂]
|
||||||
|
|
||||||
|
rw [fderiv.comp, fderiv.comp]
|
||||||
|
simp
|
||||||
|
rw [CauchyRiemann₁ h]
|
||||||
|
|
||||||
|
have u₁ : ∀ w, fderiv ℝ Complex.reCLM w = Complex.reCLM := by
|
||||||
|
exact fun w => ContinuousLinearMap.fderiv Complex.reCLM
|
||||||
|
|
||||||
|
--rw [u₁ (f z)]
|
||||||
|
have u₂ : ∀ w, fderiv ℝ Complex.imCLM w = Complex.imCLM := by
|
||||||
|
exact fun w => ContinuousLinearMap.fderiv Complex.imCLM
|
||||||
|
-- rw [u₂ (f z)]
|
||||||
|
rw [Complex.I_mul]
|
||||||
|
|
||||||
|
|
||||||
|
-- DifferentiableAt ℝ Complex.im (f z)
|
||||||
|
exact Complex.imCLM.differentiableAt
|
||||||
|
|
||||||
|
|
||||||
|
-- DifferentiableAt ℝ f z
|
||||||
|
exact t₀₀
|
||||||
|
|
||||||
|
-- DifferentiableAt ℝ Complex.re (f z)
|
||||||
|
exact Complex.reCLM.differentiableAt
|
||||||
|
|
||||||
|
-- DifferentiableAt ℝ f z
|
||||||
|
exact t₀₀
|
||||||
|
|
Loading…
Reference in New Issue