Update cauchyRiemann.lean

This commit is contained in:
Stefan Kebekus 2024-04-29 19:48:37 +02:00
parent 38eaf677f9
commit 2d2a21be72
1 changed files with 5 additions and 38 deletions

View File

@ -1,15 +1,4 @@
--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.Comp
--import Mathlib.Analysis.Calculus.FDeriv.Linear
--import Mathlib.Analysis.Calculus.FDeriv.RestrictScalars
import Mathlib.Analysis.Calculus.LineDeriv.Basic 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 import Mathlib.Analysis.Complex.RealDeriv
variable {z : } {f : } variable {z : } {f : }
@ -17,37 +6,15 @@ variable {z : } {f : }
theorem CauchyRiemann₁ : (DifferentiableAt f z) theorem CauchyRiemann₁ : (DifferentiableAt f z)
→ (fderiv f z) Complex.I = Complex.I * (fderiv f z) 1 := by → (fderiv f z) Complex.I = Complex.I * (fderiv f z) 1 := by
intro h intro h
let A := fderiv f z rw [DifferentiableAt.fderiv_restrictScalars h]
have t₁ : A (Complex.I • 1) = Complex.I • (A 1) := by nth_rewrite 1 [← mul_one Complex.I]
exact ContinuousLinearMap.map_smul_of_tower A Complex.I 1 exact ContinuousLinearMap.map_smul_of_tower (fderiv f z) Complex.I 1
let AR := (ContinuousLinearMap.restrictScalars (fderiv f z))
have t₂ : AR (Complex.I • 1) = Complex.I • (AR 1) := by
exact t₁
have t₂a : Complex.I * (AR 1) = Complex.I • (AR 1) := by
exact rfl
rw [← t₂a] at t₂
have t₂c : AR Complex.I = Complex.I • (AR 1) := by
simp at t₂
exact t₂
have t₃ : fderiv f z = ContinuousLinearMap.restrictScalars (fderiv f z) := by
exact DifferentiableAt.fderiv_restrictScalars h
rw [t₃]
exact t₂c
theorem CauchyRiemann₂ : (DifferentiableAt f z) theorem CauchyRiemann₂ : (DifferentiableAt f z)
→ lineDeriv f z Complex.I = Complex.I * lineDeriv f z 1 := by → lineDeriv f z Complex.I = Complex.I * lineDeriv f z 1 := by
intro h intro h
rw [DifferentiableAt.lineDeriv_eq_fderiv (h.restrictScalars )]
have : lineDeriv f z Complex.I = (fderiv f z) Complex.I := by rw [DifferentiableAt.lineDeriv_eq_fderiv (h.restrictScalars )]
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 exact CauchyRiemann₁ h
theorem CauchyRiemann₃ : (DifferentiableAt f z) theorem CauchyRiemann₃ : (DifferentiableAt f z)