From e5383eff34ad292a527d6a14db0d0223f1c80810 Mon Sep 17 00:00:00 2001 From: Stefan Kebekus Date: Mon, 6 May 2024 10:09:49 +0200 Subject: [PATCH] Make it work! --- Nevanlinna/complexHarmonic.lean | 58 ++++++++++++++++----------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/Nevanlinna/complexHarmonic.lean b/Nevanlinna/complexHarmonic.lean index e75bea7..9a6c7ac 100644 --- a/Nevanlinna/complexHarmonic.lean +++ b/Nevanlinna/complexHarmonic.lean @@ -21,46 +21,37 @@ def Harmonic (f : ℂ → ℂ) : Prop := (ContDiff ℝ 2 f) ∧ (∀ z, Complex.laplace f z = 0) -lemma zwoDiff (f : ℝ × ℝ → ℝ) (h : ContDiff ℝ 2 f) : ∀ z a b : ℝ × ℝ, 0 = 1 := by - intro z a b - - let fx := fun w ↦ (fderiv ℝ f w) a - let fxx := fun w ↦ (fderiv ℝ fx w) a - let f2 := (fderiv ℝ (fun w => fderiv ℝ f w) z) a a - - have : iteratedFDeriv ℝ 1 f z ![a] = 0 := by - rw [iteratedFDeriv_succ_apply_left] - simp - let g := iteratedFDeriv ℝ 0 f - simp at g - sorry - - have : f2 = fxx z := by - dsimp [f2, fxx, fx] - - sorry - - sorry - - -lemma derivSymm (f : ℂ → ℂ) (h : Differentiable ℝ f) : +lemma derivSymm (f : ℂ → ℂ) (hf : ContDiff ℝ 2 f) : ∀ z a b : ℂ, (fderiv ℝ (fun w => fderiv ℝ f w) z) a b = (fderiv ℝ (fun w => fderiv ℝ f w) z) b a := by intro z a b let f' := fun w => (fderiv ℝ f w) have h₀ : ∀ y, HasFDerivAt f (f' y) y := by + have h : Differentiable ℝ f := by + exact (contDiff_succ_iff_fderiv.1 hf).left exact fun y => DifferentiableAt.hasFDerivAt (h y) let f'' := (fderiv ℝ f' z) have h₁ : HasFDerivAt f' f'' z := by apply DifferentiableAt.hasFDerivAt - sorry + let A := (contDiff_succ_iff_fderiv.1 hf).right + let B := (contDiff_succ_iff_fderiv.1 A).left + simp at B + exact B z let A := second_derivative_symmetric h₀ h₁ a b dsimp [f'', f'] at A apply A +lemma l₂ {f : ℂ → ℂ} (hf : ContDiff ℝ 2 f) (z a b : ℂ) : + fderiv ℝ (fderiv ℝ f) z b a = fderiv ℝ (fun w ↦ fderiv ℝ f w a) z b := by + rw [fderiv_clm_apply] + · simp + · exact (contDiff_succ_iff_fderiv.1 hf).2.differentiable le_rfl z + · simp + + theorem holomorphic_is_harmonic (f : ℂ → ℂ) : Differentiable ℂ f → Harmonic f := by @@ -84,10 +75,17 @@ theorem holomorphic_is_harmonic (f : ℂ → ℂ) : intro z rw [CauchyRiemann₁ (h z)] + have t₂₀ : ContDiff ℝ 2 f := by exact ContDiff.restrict_scalars ℝ (Differentiable.contDiff h) + + have t₀₀ : Differentiable ℝ (fun w => (fderiv ℝ f w)) := by + let A := (contDiff_succ_iff_fderiv.1 t₂₀).right + let B := (contDiff_succ_iff_fderiv.1 A).left + exact B + have t₀ : ∀ z, DifferentiableAt ℝ (fun w => (fderiv ℝ f w) 1) z := by intro z - - sorry + let A := t₀₀ + fun_prop have t₁ : ∀ x, (fderiv ℝ (fun w => Complex.I * (fderiv ℝ f w) 1) z) x = Complex.I * ((fderiv ℝ (fun w => (fderiv ℝ f w) 1) z) x) := by @@ -97,12 +95,14 @@ theorem holomorphic_is_harmonic (f : ℂ → ℂ) : exact t₀ z rw [t₁] - have t₂₀ : Differentiable ℝ f := by sorry have t₂ : (fderiv ℝ (fun w => (fderiv ℝ f w) 1) z) Complex.I = (fderiv ℝ (fun w => (fderiv ℝ f w) Complex.I) z) 1 := by let A := derivSymm f t₂₀ z 1 Complex.I - - sorry + let B := l₂ t₂₀ z Complex.I 1 + rw [← B] + rw [A] + let C := l₂ t₂₀ z 1 Complex.I + rw [C] rw [t₂] conv =>