Update cauchyRiemann.lean

This commit is contained in:
Stefan Kebekus 2024-04-29 20:53:47 +02:00
parent 2d2a21be72
commit b2f04c1dfa
1 changed files with 12 additions and 67 deletions

View File

@ -22,74 +22,19 @@ theorem CauchyRiemann₃ : (DifferentiableAt f z)
∧ (lineDeriv (Complex.reCLM ∘ f) z Complex.I = -lineDeriv (Complex.imCLM ∘ f) z 1) ∧ (lineDeriv (Complex.reCLM ∘ f) z Complex.I = -lineDeriv (Complex.imCLM ∘ f) z 1)
:= by := by
-- Proof starts here
intro h intro h
have t₀₀ : DifferentiableAt f z := by have ContinuousLinearMap.comp_lineDeriv : ∀ w : , ∀ l : →L[] , lineDeriv (l ∘ f) z w = l ((fderiv f z) w) := by
exact h.restrictScalars intro w l
have t₀₁ : DifferentiableAt Complex.reCLM (f z) := by rw [DifferentiableAt.lineDeriv_eq_fderiv]
have : ∀ w, DifferentiableAt Complex.reCLM w := by rw [fderiv.comp]
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]
simp simp
rw [CauchyRiemann₁ h] fun_prop
rw [Complex.I_mul] exact h.restrictScalars
-- DifferentiableAt Complex.im (f z) apply (ContinuousLinearMap.differentiableAt l).comp
exact Complex.imCLM.differentiableAt exact h.restrictScalars
-- DifferentiableAt f z repeat
exact t₀₀ rw [ContinuousLinearMap.comp_lineDeriv]
rw [CauchyRiemann₁ h, Complex.I_mul]
-- 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]
simp 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₀₀