Working…
This commit is contained in:
parent
21693bd12d
commit
50d0bead78
|
@ -138,10 +138,27 @@ theorem log_normSq_of_holomorphicAt_is_harmonicAt
|
||||||
apply hx.2
|
apply hx.2
|
||||||
|
|
||||||
rw [HarmonicAt_eventuallyEq this]
|
rw [HarmonicAt_eventuallyEq this]
|
||||||
|
apply harmonicAt_add_harmonicAt_is_harmonicAt
|
||||||
|
·
|
||||||
|
sorry
|
||||||
|
· apply holomorphicAt_is_harmonicAt
|
||||||
|
apply HolomorphicAt_comp
|
||||||
|
use Complex.slitPlane
|
||||||
|
constructor
|
||||||
|
· apply IsOpen.mem_nhds
|
||||||
|
exact Complex.isOpen_slitPlane
|
||||||
|
assumption
|
||||||
|
· exact fun z a => Complex.differentiableAt_log a
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sorry
|
||||||
|
assumption
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sorry
|
sorry
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,4 @@
|
||||||
import Mathlib.Analysis.Complex.Basic
|
|
||||||
import Mathlib.Analysis.Complex.TaylorSeries
|
|
||||||
import Mathlib.Analysis.Calculus.LineDeriv.Basic
|
|
||||||
import Mathlib.Analysis.Calculus.ContDiff.Defs
|
|
||||||
import Mathlib.Analysis.Calculus.FDeriv.Basic
|
|
||||||
import Mathlib.Analysis.Calculus.FDeriv.Symmetric
|
|
||||||
import Mathlib.Analysis.RCLike.Basic
|
|
||||||
import Mathlib.Analysis.SpecialFunctions.Complex.LogDeriv
|
|
||||||
import Mathlib.Data.Complex.Module
|
|
||||||
import Mathlib.Data.Complex.Order
|
|
||||||
import Mathlib.Data.Complex.Exponential
|
|
||||||
import Mathlib.Data.Fin.Tuple.Basic
|
|
||||||
import Mathlib.Topology.Algebra.InfiniteSum.Module
|
|
||||||
import Mathlib.Topology.Instances.RealVectorSpace
|
|
||||||
import Nevanlinna.cauchyRiemann
|
|
||||||
import Nevanlinna.laplace
|
import Nevanlinna.laplace
|
||||||
import Nevanlinna.partialDeriv
|
|
||||||
|
|
||||||
variable {F : Type*} [NormedAddCommGroup F] [NormedSpace ℝ F]
|
variable {F : Type*} [NormedAddCommGroup F] [NormedSpace ℝ F]
|
||||||
variable {F₁ : Type*} [NormedAddCommGroup F₁] [NormedSpace ℂ F₁] [CompleteSpace F₁]
|
variable {F₁ : Type*} [NormedAddCommGroup F₁] [NormedSpace ℂ F₁] [CompleteSpace F₁]
|
||||||
|
@ -162,11 +146,10 @@ theorem harmonicAt_add_harmonicAt_is_harmonicAt
|
||||||
HarmonicAt (f₁ + f₂) x := by
|
HarmonicAt (f₁ + f₂) x := by
|
||||||
constructor
|
constructor
|
||||||
· exact ContDiffAt.add h₁.1 h₂.1
|
· exact ContDiffAt.add h₁.1 h₂.1
|
||||||
· rw [laplace_add_ContDiffAt]
|
· apply Filter.EventuallyEq.trans (laplace_add_ContDiffAt' h₁.1 h₂.1)
|
||||||
intro z hz
|
apply Filter.EventuallyEq.trans (Filter.EventuallyEq.add h₁.2 h₂.2)
|
||||||
rw [laplace_add_ContDiffOn hs h₁.1 h₂.1 z hz]
|
|
||||||
rw [h₁.2 z hz, h₂.2 z hz]
|
|
||||||
simp
|
simp
|
||||||
|
rfl
|
||||||
|
|
||||||
|
|
||||||
theorem harmonic_smul_const_is_harmonic {f : ℂ → F} {c : ℝ} (h : Harmonic f) :
|
theorem harmonic_smul_const_is_harmonic {f : ℂ → F} {c : ℝ} (h : Harmonic f) :
|
||||||
|
|
|
@ -19,6 +19,7 @@ import Nevanlinna.complexHarmonic
|
||||||
|
|
||||||
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℂ E]
|
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℂ E]
|
||||||
variable {F : Type*} [NormedAddCommGroup F] [NormedSpace ℂ F] [CompleteSpace F]
|
variable {F : Type*} [NormedAddCommGroup F] [NormedSpace ℂ F] [CompleteSpace F]
|
||||||
|
variable {G : Type*} [NormedAddCommGroup G] [NormedSpace ℂ G] [CompleteSpace G]
|
||||||
|
|
||||||
def HolomorphicAt (f : E → F) (x : E) : Prop :=
|
def HolomorphicAt (f : E → F) (x : E) : Prop :=
|
||||||
∃ s ∈ nhds x, ∀ z ∈ s, DifferentiableAt ℂ f z
|
∃ s ∈ nhds x, ∀ z ∈ s, DifferentiableAt ℂ f z
|
||||||
|
@ -59,7 +60,7 @@ theorem HolomorphicAt_differentiableAt
|
||||||
theorem HolomorphicAt_isOpen
|
theorem HolomorphicAt_isOpen
|
||||||
(f : E → F) :
|
(f : E → F) :
|
||||||
IsOpen { x : E | HolomorphicAt f x } := by
|
IsOpen { x : E | HolomorphicAt f x } := by
|
||||||
|
|
||||||
rw [← subset_interior_iff_isOpen]
|
rw [← subset_interior_iff_isOpen]
|
||||||
intro x hx
|
intro x hx
|
||||||
simp at hx
|
simp at hx
|
||||||
|
@ -78,6 +79,31 @@ theorem HolomorphicAt_isOpen
|
||||||
· exact h₂s
|
· exact h₂s
|
||||||
|
|
||||||
|
|
||||||
|
theorem HolomorphicAt_comp
|
||||||
|
{g : E → F}
|
||||||
|
{f : F → G}
|
||||||
|
{z : E}
|
||||||
|
(hf : HolomorphicAt f (g z))
|
||||||
|
(hg : HolomorphicAt g z) :
|
||||||
|
HolomorphicAt (f ∘ g) z := by
|
||||||
|
obtain ⟨UE, h₁UE, h₂UE⟩ := hg
|
||||||
|
obtain ⟨UF, h₁UF, h₂UF⟩ := hf
|
||||||
|
use UE ∩ g⁻¹' UF
|
||||||
|
constructor
|
||||||
|
· simp
|
||||||
|
constructor
|
||||||
|
· assumption
|
||||||
|
· apply ContinuousAt.preimage_mem_nhds
|
||||||
|
apply (h₂UE z (mem_of_mem_nhds h₁UE)).continuousAt
|
||||||
|
assumption
|
||||||
|
· intro x hx
|
||||||
|
apply DifferentiableAt.comp
|
||||||
|
apply h₂UF
|
||||||
|
exact hx.2
|
||||||
|
apply h₂UE
|
||||||
|
exact hx.1
|
||||||
|
|
||||||
|
|
||||||
theorem HolomorphicAt_contDiffAt
|
theorem HolomorphicAt_contDiffAt
|
||||||
{f : ℂ → F}
|
{f : ℂ → F}
|
||||||
{z : ℂ}
|
{z : ℂ}
|
||||||
|
|
|
@ -1,19 +1,4 @@
|
||||||
import Mathlib.Data.Fin.Tuple.Basic
|
|
||||||
import Mathlib.Analysis.Complex.Basic
|
import Mathlib.Analysis.Complex.Basic
|
||||||
import Mathlib.Analysis.Complex.TaylorSeries
|
|
||||||
import Mathlib.Analysis.Calculus.LineDeriv.Basic
|
|
||||||
import Mathlib.Analysis.Calculus.ContDiff.Defs
|
|
||||||
import Mathlib.Analysis.Calculus.FDeriv.Basic
|
|
||||||
import Mathlib.Analysis.Calculus.FDeriv.Symmetric
|
|
||||||
import Mathlib.Data.Complex.Module
|
|
||||||
import Mathlib.Data.Complex.Order
|
|
||||||
import Mathlib.Data.Complex.Exponential
|
|
||||||
import Mathlib.Analysis.RCLike.Basic
|
|
||||||
import Mathlib.Order.Filter.Basic
|
|
||||||
import Mathlib.Topology.Algebra.InfiniteSum.Module
|
|
||||||
import Mathlib.Topology.Basic
|
|
||||||
import Mathlib.Topology.Instances.RealVectorSpace
|
|
||||||
import Nevanlinna.cauchyRiemann
|
|
||||||
import Nevanlinna.partialDeriv
|
import Nevanlinna.partialDeriv
|
||||||
|
|
||||||
variable {F : Type*} [NormedAddCommGroup F] [NormedSpace ℝ F]
|
variable {F : Type*} [NormedAddCommGroup F] [NormedSpace ℝ F]
|
||||||
|
@ -169,6 +154,7 @@ theorem laplace_add_ContDiffAt
|
||||||
apply fun v ↦ (partialDeriv_contDiffAt ℝ h₁ v).differentiableAt le_rfl
|
apply fun v ↦ (partialDeriv_contDiffAt ℝ h₁ v).differentiableAt le_rfl
|
||||||
apply fun v ↦ (partialDeriv_contDiffAt ℝ h₂ v).differentiableAt le_rfl
|
apply fun v ↦ (partialDeriv_contDiffAt ℝ h₂ v).differentiableAt le_rfl
|
||||||
|
|
||||||
|
|
||||||
theorem laplace_add_ContDiffAt'
|
theorem laplace_add_ContDiffAt'
|
||||||
{f₁ f₂ : ℂ → F}
|
{f₁ f₂ : ℂ → F}
|
||||||
{x : ℂ}
|
{x : ℂ}
|
||||||
|
@ -177,49 +163,43 @@ theorem laplace_add_ContDiffAt'
|
||||||
Δ (f₁ + f₂) =ᶠ[nhds x] (Δ f₁) + (Δ f₂):= by
|
Δ (f₁ + f₂) =ᶠ[nhds x] (Δ f₁) + (Δ f₂):= by
|
||||||
|
|
||||||
unfold Complex.laplace
|
unfold Complex.laplace
|
||||||
have : partialDeriv ℝ 1 (partialDeriv ℝ 1 f₁) + partialDeriv ℝ Complex.I (partialDeriv ℝ Complex.I f₁) +
|
|
||||||
(partialDeriv ℝ 1 (partialDeriv ℝ 1 f₂) + partialDeriv ℝ Complex.I (partialDeriv ℝ Complex.I f₂)) =
|
|
||||||
(partialDeriv ℝ 1 (partialDeriv ℝ 1 f₁) + (partialDeriv ℝ 1 (partialDeriv ℝ 1 f₂)) +
|
|
||||||
(partialDeriv ℝ Complex.I (partialDeriv ℝ Complex.I f₁) + partialDeriv ℝ Complex.I (partialDeriv ℝ Complex.I f₂))) := by
|
|
||||||
group
|
|
||||||
rw [this]
|
|
||||||
apply Filter.EventuallyEq.add
|
|
||||||
|
|
||||||
suffices hyp : partialDeriv ℝ 1 (partialDeriv ℝ 1 (f₁ + f₂)) =ᶠ[nhds x] partialDeriv ℝ 1 (partialDeriv ℝ 1 f₁) + partialDeriv ℝ 1 (partialDeriv ℝ 1 f₂) from by
|
|
||||||
have : (fun x => partialDeriv ℝ 1 (partialDeriv ℝ 1 (f₁ + f₂)) x) = partialDeriv ℝ 1 (partialDeriv ℝ 1 (f₁ + f₂)) := by
|
|
||||||
rfl
|
|
||||||
rw [this]
|
|
||||||
have : (fun x => (partialDeriv ℝ 1 (partialDeriv ℝ 1 f₁) + partialDeriv ℝ 1 (partialDeriv ℝ 1 f₂)) x) = (partialDeriv ℝ 1 (partialDeriv ℝ 1 f₁)) + (partialDeriv ℝ 1 (partialDeriv ℝ 1 f₂)) := by
|
|
||||||
rfl
|
|
||||||
rwa [this]
|
|
||||||
|
|
||||||
simp
|
|
||||||
|
|
||||||
have h₁₁ : ContDiffAt ℝ 1 f₁ x := h₁.of_le one_le_two
|
|
||||||
have h₂₁ : ContDiffAt ℝ 1 f₂ x := h₂.of_le one_le_two
|
|
||||||
let A : partialDeriv ℝ 1 (f₁ + f₂) =ᶠ[nhds x] (partialDeriv ℝ 1 f₁) + (partialDeriv ℝ 1 f₂) := by
|
|
||||||
exact partialDeriv_add₂_contDiffAt ℝ h₁₁ h₂₁
|
|
||||||
let B : partialDeriv ℝ 1 (partialDeriv ℝ 1 (f₁ + f₂)) =ᶠ[nhds x] (partialDeriv ℝ 1 (partialDeriv ℝ 1 f₁)) + (partialDeriv ℝ 1 (partialDeriv ℝ 1 f₂)) := by
|
|
||||||
sorry
|
|
||||||
|
|
||||||
sorry
|
|
||||||
repeat
|
|
||||||
rw [partialDeriv_eventuallyEq ℝ (partialDeriv_add₂_contDiffAt ℝ h₁₁ h₂₁)]
|
|
||||||
rw [partialDeriv_add₂_differentiableAt]
|
|
||||||
|
|
||||||
-- I am super confused at this point because the tactic 'ring' does not work.
|
|
||||||
-- I do not understand why. So, I need to do things by hand.
|
|
||||||
rw [add_assoc]
|
rw [add_assoc]
|
||||||
|
nth_rw 5 [add_comm]
|
||||||
rw [add_assoc]
|
rw [add_assoc]
|
||||||
rw [add_right_inj (partialDeriv ℝ 1 (partialDeriv ℝ 1 f₁) x)]
|
rw [← add_assoc]
|
||||||
rw [add_comm]
|
|
||||||
rw [add_assoc]
|
have dualPDeriv : ∀ v : ℂ, partialDeriv ℝ v (partialDeriv ℝ v (f₁ + f₂)) =ᶠ[nhds x]
|
||||||
rw [add_right_inj (partialDeriv ℝ Complex.I (partialDeriv ℝ Complex.I f₁) x)]
|
partialDeriv ℝ v (partialDeriv ℝ v f₁) + partialDeriv ℝ v (partialDeriv ℝ v f₂) := by
|
||||||
rw [add_comm]
|
|
||||||
|
intro v
|
||||||
|
have h₁₁ : ContDiffAt ℝ 1 f₁ x := h₁.of_le one_le_two
|
||||||
|
have h₂₁ : ContDiffAt ℝ 1 f₂ x := h₂.of_le one_le_two
|
||||||
|
|
||||||
|
have t₁ : partialDeriv ℝ v (partialDeriv ℝ v (f₁ + f₂)) =ᶠ[nhds x] partialDeriv ℝ v (partialDeriv ℝ v f₁ + partialDeriv ℝ v f₂) := by
|
||||||
|
exact partialDeriv_eventuallyEq' ℝ (partialDeriv_add₂_contDiffAt ℝ h₁₁ h₂₁) v
|
||||||
|
|
||||||
|
have t₂ : partialDeriv ℝ v (partialDeriv ℝ v f₁ + partialDeriv ℝ v f₂) =ᶠ[nhds x] (partialDeriv ℝ v (partialDeriv ℝ v f₁)) + (partialDeriv ℝ v (partialDeriv ℝ v f₂)) := by
|
||||||
|
apply partialDeriv_add₂_contDiffAt ℝ
|
||||||
|
apply partialDeriv_contDiffAt
|
||||||
|
exact h₁
|
||||||
|
apply partialDeriv_contDiffAt
|
||||||
|
exact h₂
|
||||||
|
|
||||||
|
apply Filter.EventuallyEq.trans t₁ t₂
|
||||||
|
|
||||||
|
have eventuallyEq_add
|
||||||
|
{a₁ a₂ b₁ b₂ : ℂ → F}
|
||||||
|
(h : a₁ =ᶠ[nhds x] b₁)
|
||||||
|
(h' : a₂ =ᶠ[nhds x] b₂) : (a₁ + a₂) =ᶠ[nhds x] (b₁ + b₂) := by
|
||||||
|
have {c₁ c₂ : ℂ → F} : (fun x => c₁ x + c₂ x) = c₁ + c₂ := by rfl
|
||||||
|
rw [← this, ← this]
|
||||||
|
exact Filter.EventuallyEq.add h h'
|
||||||
|
apply eventuallyEq_add
|
||||||
|
· exact dualPDeriv 1
|
||||||
|
· nth_rw 2 [add_comm]
|
||||||
|
exact dualPDeriv Complex.I
|
||||||
|
|
||||||
repeat
|
|
||||||
apply fun v ↦ (partialDeriv_contDiffAt ℝ h₁ v).differentiableAt le_rfl
|
|
||||||
apply fun v ↦ (partialDeriv_contDiffAt ℝ h₂ v).differentiableAt le_rfl
|
|
||||||
|
|
||||||
theorem laplace_smul {f : ℂ → F} : ∀ v : ℝ, Δ (v • f) = v • (Δ f) := by
|
theorem laplace_smul {f : ℂ → F} : ∀ v : ℝ, Δ (v • f) = v • (Δ f) := by
|
||||||
intro v
|
intro v
|
||||||
|
|
|
@ -28,6 +28,16 @@ theorem partialDeriv_eventuallyEq'
|
||||||
simp
|
simp
|
||||||
|
|
||||||
|
|
||||||
|
theorem partialDeriv_eventuallyEq
|
||||||
|
{f₁ f₂ : E → F}
|
||||||
|
{x : E}
|
||||||
|
(h : f₁ =ᶠ[nhds x] f₂) :
|
||||||
|
∀ v : E, partialDeriv 𝕜 v f₁ x = partialDeriv 𝕜 v f₂ x := by
|
||||||
|
unfold partialDeriv
|
||||||
|
rw [Filter.EventuallyEq.fderiv_eq h]
|
||||||
|
exact fun v => rfl
|
||||||
|
|
||||||
|
|
||||||
theorem partialDeriv_smul₁ {f : E → F} {a : 𝕜} {v : E} : partialDeriv 𝕜 (a • v) f = a • partialDeriv 𝕜 v f := by
|
theorem partialDeriv_smul₁ {f : E → F} {a : 𝕜} {v : E} : partialDeriv 𝕜 (a • v) f = a • partialDeriv 𝕜 v f := by
|
||||||
unfold partialDeriv
|
unfold partialDeriv
|
||||||
conv =>
|
conv =>
|
||||||
|
@ -177,7 +187,12 @@ theorem partialDeriv_contDiff {n : ℕ} {f : E → F} (h : ContDiff 𝕜 (n + 1)
|
||||||
exact contDiff_const
|
exact contDiff_const
|
||||||
|
|
||||||
|
|
||||||
theorem partialDeriv_contDiffAt {n : ℕ} {f : E → F} {x : E} (h : ContDiffAt 𝕜 (n + 1) f x) : ∀ v : E, ContDiffAt 𝕜 n (partialDeriv 𝕜 v f) x := by
|
theorem partialDeriv_contDiffAt
|
||||||
|
{n : ℕ}
|
||||||
|
{f : E → F}
|
||||||
|
{x : E}
|
||||||
|
(h : ContDiffAt 𝕜 (n + 1) f x) :
|
||||||
|
∀ v : E, ContDiffAt 𝕜 n (partialDeriv 𝕜 v f) x := by
|
||||||
|
|
||||||
unfold partialDeriv
|
unfold partialDeriv
|
||||||
intro v
|
intro v
|
||||||
|
@ -253,12 +268,6 @@ lemma partialDeriv_fderivAt
|
||||||
exact differentiableAt_const a
|
exact differentiableAt_const a
|
||||||
|
|
||||||
|
|
||||||
theorem partialDeriv_eventuallyEq {f₁ f₂ : E → F} {x : E} (h : f₁ =ᶠ[nhds x] f₂) : ∀ v : E, partialDeriv 𝕜 v f₁ x = partialDeriv 𝕜 v f₂ x := by
|
|
||||||
unfold partialDeriv
|
|
||||||
rw [Filter.EventuallyEq.fderiv_eq h]
|
|
||||||
exact fun v => rfl
|
|
||||||
|
|
||||||
|
|
||||||
section restrictScalars
|
section restrictScalars
|
||||||
|
|
||||||
theorem partialDeriv_smul'₂
|
theorem partialDeriv_smul'₂
|
||||||
|
|
Loading…
Reference in New Issue