Compare commits

..

2 Commits

Author SHA1 Message Date
Stefan Kebekus 015ab14131 Update complexHarmonic.lean 2024-05-16 09:37:17 +02:00
Stefan Kebekus bb2732106c Update complexHarmonic.lean 2024-05-16 09:19:45 +02:00
1 changed files with 46 additions and 20 deletions

View File

@ -126,6 +126,22 @@ theorem logabs_of_holomorphic_is_harmonic
have f_is_real_C2 : ContDiff 2 f := have f_is_real_C2 : ContDiff 2 f :=
ContDiff.restrict_scalars (Differentiable.contDiff h₁) ContDiff.restrict_scalars (Differentiable.contDiff h₁)
-- Complex.log ∘ f is real C²
have t₀ : Differentiable (Complex.log ∘ f) := by
intro z
apply DifferentiableAt.comp
exact Complex.differentiableAt_log (h₃ z)
exact h₁ z
have t₂ : Complex.log ∘ ⇑(starRingEnd ) ∘ f = ⇑(starRingEnd ) ∘ Complex.log ∘ f := by
funext z
unfold Function.comp
rw [Complex.log_conj]
exact Complex.slitPlane_arg_ne_pi (h₃ z)
have t₃ : ⇑(starRingEnd ) ∘ Complex.log ∘ f = Complex.conjCLE ∘ Complex.log ∘ f := by
rfl
-- The norm square is z * z.conj -- The norm square is z * z.conj
have normSq_conj : ∀ (z : ), (starRingEnd ) z * z = ↑‖z‖ ^ 2 := Complex.conj_mul' have normSq_conj : ∀ (z : ), (starRingEnd ) z * z = ↑‖z‖ ^ 2 := Complex.conj_mul'
@ -145,6 +161,16 @@ theorem logabs_of_holomorphic_is_harmonic
apply ContinuousLinearMap.contDiff Complex.imCLM apply ContinuousLinearMap.contDiff Complex.imCLM
apply ContinuousLinearMap.contDiff Complex.imCLM apply ContinuousLinearMap.contDiff Complex.imCLM
have t₄ : ContDiff 2 (Real.log ∘ ⇑Complex.normSq ∘ f) := by
rw [contDiff_iff_contDiffAt]
intro z
apply ContDiffAt.comp
apply Real.contDiffAt_log.mpr
simp
exact h₂ z
apply ContDiff.comp_contDiffAt z normSq_is_real_C2
exact ContDiff.contDiffAt f_is_real_C2
constructor constructor
· -- logabs f is real C² · -- logabs f is real C²
have : (fun z ↦ Real.log ‖f z‖) = (2 : )⁻¹ • (Real.log ∘ Complex.normSq ∘ f) := by have : (fun z ↦ Real.log ‖f z‖) = (2 : )⁻¹ • (Real.log ∘ Complex.normSq ∘ f) := by
@ -191,7 +217,8 @@ theorem logabs_of_holomorphic_is_harmonic
intro z intro z
rw [laplace_compContLin] rw [laplace_compContLin]
simp simp
sorry -- ContDiff 2 (Real.log ∘ ⇑Complex.normSq ∘ f)
exact t₄
conv => conv =>
intro z intro z
rw [this z] rw [this z]
@ -231,32 +258,31 @@ theorem logabs_of_holomorphic_is_harmonic
rw [this] rw [this]
rw [laplace_add] rw [laplace_add]
have : Differentiable (Complex.log ∘ f) := by
intro z
apply DifferentiableAt.comp
exact Complex.differentiableAt_log (h₃ z)
exact h₁ z
have t₁: Complex.laplace (Complex.log ∘ f) = 0 := by have t₁: Complex.laplace (Complex.log ∘ f) = 0 := by
let A := holomorphic_is_harmonic this let A := holomorphic_is_harmonic t₀
funext z funext z
exact A.2 z exact A.2 z
rw [t₁] rw [t₁]
simp simp
have : Complex.log ∘ ⇑(starRingEnd ) ∘ f = ⇑(starRingEnd ) ∘ Complex.log ∘ f := by rw [t₂]
funext z
unfold Function.comp
rw [Complex.log_conj]
exact Complex.slitPlane_arg_ne_pi (h₃ z)
rw [this]
have : ⇑(starRingEnd ) ∘ Complex.log ∘ f = Complex.conjCLE ∘ Complex.log ∘ f := by rw [t₃]
rfl
rw [this]
rw [laplace_compCLE] rw [laplace_compCLE]
rw [t₁] rw [t₁]
simp simp
sorry
sorry -- ContDiff 2 (Complex.log ∘ f)
sorry exact ContDiff.restrict_scalars (Differentiable.contDiff t₀)
-- ContDiff 2 (Complex.log ∘ ⇑(starRingEnd ) ∘ f)
rw [t₂, t₃]
apply ContDiff.comp
exact ContinuousLinearEquiv.contDiff Complex.conjCLE
exact ContDiff.restrict_scalars (Differentiable.contDiff t₀)
-- ContDiff 2 (Complex.log ∘ f)
exact ContDiff.restrict_scalars (Differentiable.contDiff t₀)
-- ContDiff 2 (Real.log ∘ ⇑Complex.normSq ∘ f)
exact t₄