Update cauchyRiemann.lean
This commit is contained in:
parent
2d2a21be72
commit
b2f04c1dfa
|
@ -22,74 +22,19 @@ theorem CauchyRiemann₃ : (DifferentiableAt ℂ f z)
|
|||
∧ (lineDeriv ℝ (Complex.reCLM ∘ f) z Complex.I = -lineDeriv ℝ (Complex.imCLM ∘ f) z 1)
|
||||
:= 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₁
|
||||
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₁
|
||||
|
||||
constructor
|
||||
· rw [t₂, s₂]
|
||||
rw [fderiv.comp, fderiv.comp]
|
||||
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
|
||||
rw [CauchyRiemann₁ h]
|
||||
rw [Complex.I_mul]
|
||||
-- DifferentiableAt ℝ Complex.im (f z)
|
||||
exact Complex.imCLM.differentiableAt
|
||||
fun_prop
|
||||
exact h.restrictScalars ℝ
|
||||
apply (ContinuousLinearMap.differentiableAt l).comp
|
||||
exact h.restrictScalars ℝ
|
||||
|
||||
-- DifferentiableAt ℝ f z
|
||||
exact t₀₀
|
||||
|
||||
-- DifferentiableAt ℝ Complex.re (f z)
|
||||
exact Complex.reCLM.differentiableAt
|
||||
|
||||
-- DifferentiableAt ℝ f z
|
||||
exact t₀₀
|
||||
· have r₂ : lineDeriv ℝ (Complex.reCLM ∘ f) z Complex.I = (fderiv ℝ (Complex.reCLM ∘ f) z) Complex.I := by
|
||||
apply DifferentiableAt.lineDeriv_eq_fderiv
|
||||
exact t₁
|
||||
have p₂ : lineDeriv ℝ (Complex.imCLM ∘ f) z 1 = (fderiv ℝ (Complex.imCLM ∘ f) z) 1 := by
|
||||
apply DifferentiableAt.lineDeriv_eq_fderiv
|
||||
exact s₁
|
||||
rw [r₂, p₂]
|
||||
rw [fderiv.comp, fderiv.comp]
|
||||
repeat
|
||||
rw [ContinuousLinearMap.comp_lineDeriv]
|
||||
rw [CauchyRiemann₁ h, Complex.I_mul]
|
||||
simp
|
||||
rw [CauchyRiemann₁ h]
|
||||
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