Update complexHarmonic.lean
This commit is contained in:
parent
015ab14131
commit
710de9372b
|
@ -122,28 +122,7 @@ theorem logabs_of_holomorphic_is_harmonic
|
||||||
(h₃ : ∀ z, f z ∈ Complex.slitPlane) :
|
(h₃ : ∀ z, f z ∈ Complex.slitPlane) :
|
||||||
Harmonic (fun z ↦ Real.log ‖f z‖) := by
|
Harmonic (fun z ↦ Real.log ‖f z‖) := by
|
||||||
|
|
||||||
-- f is real C²
|
/- We start with a number of lemmas on regularity of all the functions involved -/
|
||||||
have f_is_real_C2 : ContDiff ℝ 2 f :=
|
|
||||||
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
|
|
||||||
have normSq_conj : ∀ (z : ℂ), (starRingEnd ℂ) z * z = ↑‖z‖ ^ 2 := Complex.conj_mul'
|
|
||||||
|
|
||||||
-- The norm square is real C²
|
-- The norm square is real C²
|
||||||
have normSq_is_real_C2 : ContDiff ℝ 2 Complex.normSq := by
|
have normSq_is_real_C2 : ContDiff ℝ 2 Complex.normSq := by
|
||||||
|
@ -161,6 +140,18 @@ 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
|
||||||
|
|
||||||
|
-- f is real C²
|
||||||
|
have f_is_real_C2 : ContDiff ℝ 2 f :=
|
||||||
|
ContDiff.restrict_scalars ℝ (Differentiable.contDiff h₁)
|
||||||
|
|
||||||
|
-- Complex.log ∘ f is real C²
|
||||||
|
have log_f_is_holomorphic : Differentiable ℂ (Complex.log ∘ f) := by
|
||||||
|
intro z
|
||||||
|
apply DifferentiableAt.comp
|
||||||
|
exact Complex.differentiableAt_log (h₃ z)
|
||||||
|
exact h₁ z
|
||||||
|
|
||||||
|
-- Real.log |f|² is real C²
|
||||||
have t₄ : ContDiff ℝ 2 (Real.log ∘ ⇑Complex.normSq ∘ f) := by
|
have t₄ : ContDiff ℝ 2 (Real.log ∘ ⇑Complex.normSq ∘ f) := by
|
||||||
rw [contDiff_iff_contDiffAt]
|
rw [contDiff_iff_contDiffAt]
|
||||||
intro z
|
intro z
|
||||||
|
@ -171,6 +162,19 @@ theorem logabs_of_holomorphic_is_harmonic
|
||||||
apply ContDiff.comp_contDiffAt z normSq_is_real_C2
|
apply ContDiff.comp_contDiffAt z normSq_is_real_C2
|
||||||
exact ContDiff.contDiffAt f_is_real_C2
|
exact ContDiff.contDiffAt f_is_real_C2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
have t₂ : Complex.log ∘ ⇑(starRingEnd ℂ) ∘ f = Complex.conjCLE ∘ Complex.log ∘ f := by
|
||||||
|
funext z
|
||||||
|
unfold Function.comp
|
||||||
|
rw [Complex.log_conj]
|
||||||
|
rfl
|
||||||
|
exact Complex.slitPlane_arg_ne_pi (h₃ z)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
@ -190,15 +194,8 @@ theorem logabs_of_holomorphic_is_harmonic
|
||||||
|
|
||||||
apply contDiff_iff_contDiffAt.2
|
apply contDiff_iff_contDiffAt.2
|
||||||
intro z
|
intro z
|
||||||
|
|
||||||
apply ContDiffAt.const_smul
|
apply ContDiffAt.const_smul
|
||||||
apply ContDiffAt.comp
|
exact ContDiff.contDiffAt t₄
|
||||||
apply Real.contDiffAt_log.2
|
|
||||||
simp
|
|
||||||
exact h₂ z
|
|
||||||
apply ContDiffAt.comp
|
|
||||||
exact ContDiff.contDiffAt normSq_is_real_C2
|
|
||||||
exact ContDiff.contDiffAt f_is_real_C2
|
|
||||||
|
|
||||||
· -- Laplace vanishes
|
· -- Laplace vanishes
|
||||||
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
|
||||||
|
@ -258,31 +255,23 @@ theorem logabs_of_holomorphic_is_harmonic
|
||||||
rw [this]
|
rw [this]
|
||||||
rw [laplace_add]
|
rw [laplace_add]
|
||||||
|
|
||||||
have t₁: Complex.laplace (Complex.log ∘ f) = 0 := by
|
rw [t₂, laplace_compCLE]
|
||||||
let A := holomorphic_is_harmonic t₀
|
intro z
|
||||||
funext z
|
|
||||||
exact A.2 z
|
|
||||||
rw [t₁]
|
|
||||||
simp
|
simp
|
||||||
|
rw [(holomorphic_is_harmonic log_f_is_holomorphic).2 z]
|
||||||
rw [t₂]
|
|
||||||
|
|
||||||
rw [t₃]
|
|
||||||
rw [laplace_compCLE]
|
|
||||||
rw [t₁]
|
|
||||||
simp
|
simp
|
||||||
|
|
||||||
-- ContDiff ℝ 2 (Complex.log ∘ f)
|
-- ContDiff ℝ 2 (Complex.log ∘ f)
|
||||||
exact ContDiff.restrict_scalars ℝ (Differentiable.contDiff t₀)
|
exact ContDiff.restrict_scalars ℝ (Differentiable.contDiff log_f_is_holomorphic)
|
||||||
|
|
||||||
-- ContDiff ℝ 2 (Complex.log ∘ ⇑(starRingEnd ℂ) ∘ f)
|
-- ContDiff ℝ 2 (Complex.log ∘ ⇑(starRingEnd ℂ) ∘ f)
|
||||||
rw [t₂, t₃]
|
rw [t₂]
|
||||||
apply ContDiff.comp
|
apply ContDiff.comp
|
||||||
exact ContinuousLinearEquiv.contDiff Complex.conjCLE
|
exact ContinuousLinearEquiv.contDiff Complex.conjCLE
|
||||||
exact ContDiff.restrict_scalars ℝ (Differentiable.contDiff t₀)
|
exact ContDiff.restrict_scalars ℝ (Differentiable.contDiff log_f_is_holomorphic)
|
||||||
|
|
||||||
-- ContDiff ℝ 2 (Complex.log ∘ f)
|
-- ContDiff ℝ 2 (Complex.log ∘ f)
|
||||||
exact ContDiff.restrict_scalars ℝ (Differentiable.contDiff t₀)
|
exact ContDiff.restrict_scalars ℝ (Differentiable.contDiff log_f_is_holomorphic)
|
||||||
|
|
||||||
-- ContDiff ℝ 2 (Real.log ∘ ⇑Complex.normSq ∘ f)
|
-- ContDiff ℝ 2 (Real.log ∘ ⇑Complex.normSq ∘ f)
|
||||||
exact t₄
|
exact t₄
|
||||||
|
|
Loading…
Reference in New Issue