Update complexHarmonic.lean

This commit is contained in:
Stefan Kebekus
2024-06-05 09:51:02 +02:00
parent 74d9636aa9
commit 05582e5d83

View File

@@ -25,10 +25,42 @@ variable {G₁ : Type*} [NormedAddCommGroup G₁] [NormedSpace G₁] [Comple
def Harmonic (f : F) : Prop :=
(ContDiff 2 f) ( z, Δ f z = 0)
def HarmonicAt (f : F) (x : ) : Prop :=
(ContDiffAt 2 f x) (Δ f =[nhds x] 0)
def HarmonicOn (f : F) (s : Set ) : Prop :=
(ContDiffOn 2 f s) ( z s, Δ f z = 0)
theorem HarmonicAt_iff
{f : F}
{x : } :
HarmonicAt f x s : Set , IsOpen s x s (ContDiffOn 2 f s) ( z s, Δ f z = 0) := by
constructor
· intro hf
obtain s₁, h₁s₁, h₂s₁, h₃s₁ := hf.1.contDiffOn' le_rfl
simp at h₃s₁
obtain t₂, h₁t₂, h₂t₂ := (Filter.eventuallyEq_iff_exists_mem.1 hf.2)
obtain s₂, h₁s₂, h₂s₂, h₃s₂ := mem_nhds_iff.1 h₁t₂
let s := s₁ s₂
use s
constructor
· exact IsOpen.inter h₁s₁ h₂s₂
· constructor
· exact Set.mem_inter h₂s₁ h₃s₂
· constructor
· exact h₃s₁.mono (Set.inter_subset_left s₁ s₂)
· intro z hz
exact h₂t₂ (h₁s₂ hz.2)
· intro hyp
obtain s, h₁s, h₂s, h₁f, h₂f := hyp
constructor
· apply h₁f.contDiffAt
apply (IsOpen.mem_nhds_iff h₁s).2 h₂s
· apply Filter.eventuallyEq_iff_exists_mem.2
use s
constructor
· apply (IsOpen.mem_nhds_iff h₁s).2 h₂s
· exact h₂f
theorem HarmonicOn_of_locally_HarmonicOn {f : F} {s : Set } (h : x s, (u : Set ), IsOpen u x u HarmonicOn f (s u)) :