Working…

This commit is contained in:
Stefan Kebekus 2024-06-05 12:03:05 +02:00
parent a34699ddbc
commit 9c53bb793a
4 changed files with 98 additions and 14 deletions

View File

@ -16,12 +16,56 @@ import Mathlib.Topology.Instances.RealVectorSpace
import Nevanlinna.cauchyRiemann
import Nevanlinna.laplace
import Nevanlinna.complexHarmonic
import Nevanlinna.holomorphic
variable {F : Type*} [NormedAddCommGroup F] [NormedSpace F]
variable {F₁ : Type*} [NormedAddCommGroup F₁] [NormedSpace F₁] [CompleteSpace F₁]
variable {G : Type*} [NormedAddCommGroup G] [NormedSpace G]
variable {G₁ : Type*} [NormedAddCommGroup G₁] [NormedSpace G₁] [CompleteSpace G₁]
#check DifferentiableOn.contDiffOn
theorem holomorphicAt_is_harmonicAt
{f : → F₁}
{z : }
(hf : HolomorphicAt f z) :
HarmonicAt f z := by
obtain ⟨s, hs, hz, h'f⟩ := HolomorphicAt_iff.1 hf
constructor
· -- ContDiffAt 2 f z
apply ContDiffOn.contDiffAt _ ((IsOpen.mem_nhds_iff hs).2 hz)
suffices h : ContDiffOn 2 f s from by
apply ContDiffOn.restrict_scalars h
apply DifferentiableOn.contDiffOn _ hs
intro w hw
apply DifferentiableAt.differentiableWithinAt
exact h'f w hw
· -- Δ f =ᶠ[nhds z] 0
obtain ⟨t, ht, hz, h'f⟩ := HolomorphicAt_isOpen.1 hf
apply Filter.eventuallyEq_iff_exists_mem.2
use t
constructor
· exact IsOpen.mem_nhds ht hz
· intro w hw
unfold Complex.laplace
simp
rw [partialDeriv_eventuallyEq (CauchyRiemann'₆ (h'f w hw)) Complex.I]
rw [partialDeriv_smul'₂]
simp
have f_is_real_C2 : ContDiffOn 2 f t :=
ContDiffOn.restrict_scalars (DifferentiableOn.contDiffOn h'f ht)
rw [partialDeriv_commOn ht f_is_real_C2 Complex.I 1 w hw]
rw [partialDeriv_eventuallyEq (CauchyRiemann'₆ (h'f w hw)) 1]
rw [partialDeriv_smul'₂]
simp
rw [← smul_assoc]
simp
theorem holomorphic_is_harmonic {f : → F₁} (h : Differentiable f) :
Harmonic f := by
@ -115,9 +159,6 @@ theorem holomorphicOn_is_harmonicOn {f : → F₁} {s : Set } (hs : IsOpe
simp
rw [partialDeriv_commOn hs f_is_real_C2 Complex.I 1 z hz]
have : Complex.I • partialDeriv 1 (partialDeriv Complex.I f) z = Complex.I • (partialDeriv 1 (partialDeriv Complex.I f) z) := by
rfl
rw [this]
have : partialDeriv Complex.I f =ᶠ[nhds z] Complex.I • partialDeriv 1 f := by
unfold Filter.EventuallyEq
unfold Filter.Eventually

View File

@ -31,6 +31,7 @@ def HarmonicAt (f : → F) (x : ) : Prop :=
def HarmonicOn (f : → F) (s : Set ) : Prop :=
(ContDiffOn 2 f s) ∧ (∀ z ∈ s, Δ f z = 0)
theorem HarmonicAt_iff
{f : → F}
{x : } :

View File

@ -33,11 +33,42 @@ theorem HolomorphicAt_iff
· assumption
theorem CauchyRiemann₅
theorem HolomorphicAt_isOpen
{f : E → F}
{x : E} :
HolomorphicAt f x ↔ ∃ s : Set E, IsOpen s ∧ x ∈ s ∧ (∀ z ∈ s, HolomorphicAt f z) := by
constructor
· intro hf
obtain ⟨t, h₁t, h₂t⟩ := hf
obtain ⟨s, h₁s, h₂s, h₃s⟩ := mem_nhds_iff.1 h₁t
use s
constructor
· assumption
· constructor
· assumption
· intro z hz
apply HolomorphicAt_iff.2
use s
constructor
· assumption
· constructor
· assumption
· exact fun w hw ↦ h₂t w (h₁s hw)
· intro hyp
obtain ⟨s, h₁s, h₂s, hf⟩ := hyp
use s
constructor
· apply (IsOpen.mem_nhds_iff h₁s).2 h₂s
· intro z hz
obtain ⟨t, ht⟩ := (hf z hz)
exact ht.2 z (mem_of_mem_nhds ht.1)
theorem CauchyRiemann'₅
{f : → F}
{z : } :
(DifferentiableAt f z) → partialDeriv Complex.I f z = Complex.I • partialDeriv 1 f z := by
intro h
{z : }
(h : DifferentiableAt f z) :
partialDeriv Complex.I f z = Complex.I • partialDeriv 1 f z := by
unfold partialDeriv
conv =>
@ -53,11 +84,18 @@ theorem CauchyRiemann₅
rw [DifferentiableAt.fderiv_restrictScalars h]
theorem CauchyRiemann₆
{f : }
{z : } :
(HolomorphicAt f z) → partialDeriv Complex.I f =ᶠ[nhds z] Complex.I • partialDeriv 1 f := by
theorem CauchyRiemann'₆
{f : → F}
{z : }
(h : HolomorphicAt f z) :
partialDeriv Complex.I f =ᶠ[nhds z] Complex.I • partialDeriv 1 f := by
obtain ⟨s, h₁s, hz, h₂f⟩ := HolomorphicAt_iff.1 h
sorry
apply Filter.eventuallyEq_iff_exists_mem.2
use s
constructor
· exact IsOpen.mem_nhds h₁s hz
· intro w hw
apply CauchyRiemann'₅
exact h₂f w hw

View File

@ -16,7 +16,11 @@ noncomputable def partialDeriv : E → (E → F) → (E → F) :=
fun v ↦ (fun f ↦ (fun w ↦ fderiv 𝕜 f w v))
theorem partialDeriv_eventuallyEq' {f₁ f₂ : E → F} {x : E} (h : f₁ =ᶠ[nhds x] f₂) : ∀ v : E, partialDeriv 𝕜 v f₁ =ᶠ[nhds x] partialDeriv 𝕜 v f₂ := by
theorem partialDeriv_eventuallyEq'
{f₁ f₂ : E → F}
{x : E}
(h : f₁ =ᶠ[nhds x] f₂) :
∀ v : E, partialDeriv 𝕜 v f₁ =ᶠ[nhds x] partialDeriv 𝕜 v f₂ := by
unfold partialDeriv
intro v
apply Filter.EventuallyEq.comp₂