diff --git a/Nevanlinna/holomorphic_primitive2.lean b/Nevanlinna/holomorphic_primitive2.lean index 976ce6a..766218d 100644 --- a/Nevanlinna/holomorphic_primitive2.lean +++ b/Nevanlinna/holomorphic_primitive2.lean @@ -291,18 +291,28 @@ theorem primitive_hasDerivAtBasepoint theorem primitive_additivity {E : Type u} [NormedAddCommGroup E] [NormedSpace ℂ E] [CompleteSpace E] - (f : ℂ → E) - (z₀ : ℂ) - (rx ry : ℝ) - (hry : 0 < ry) + {f : ℂ → E} + {z₀ : ℂ} + {rx ry : ℝ} (hf : DifferentiableOn ℂ f (Metric.ball z₀.re rx ×ℂ Metric.ball z₀.im ry)) - (z₁ : ℂ) + (hry : 0 < ry) + {z₁ : ℂ} (hz₁ : z₁ ∈ (Metric.ball z₀.re rx ×ℂ Metric.ball z₀.im ry)) : - ∃ εx εy : ℝ, ∀ z ∈ (Metric.ball z₁.re εx ×ℂ Metric.ball z₁.im εy), (primitive z₀ f z) - (primitive z₁ f z) - (primitive z₀ f z₁) = 0 := by + ∃ εx > 0, ∃ εy > 0, ∀ z ∈ (Metric.ball z₁.re εx ×ℂ Metric.ball z₁.im εy), (primitive z₀ f z) - (primitive z₁ f z) - (primitive z₀ f z₁) = 0 := by + + let εx := rx - dist z₀.re z₁.re + have hεx : εx > 0 := by + sorry + let εy := ry - dist z₀.im z₁.im + have hεy : εy > 0 := by + sorry + + use εx + use hεx + use εy + use hεy - use rx - dist z₀.re z₁.re - use ry - dist z₀.im z₁.im intro z hz unfold primitive @@ -506,20 +516,41 @@ theorem primitive_additivity' primitive z₀ f =ᶠ[nhds z₁] fun z ↦ (primitive z₁ f z) + (primitive z₀ f z₁) := by let ε := R - dist z₀ z₁ + + have hε : 0 < ε := by + dsimp [ε] + simp + exact Metric.mem_ball'.mp hz₁ + let rx := dist z₀.re z₁.re + ε/(2 : ℝ) let ry := dist z₀.im z₁.im + ε/(2 : ℝ) have h'ry : 0 < ry := by - sorry + dsimp [ry] + apply add_pos_of_nonneg_of_pos + exact dist_nonneg + simpa have h'f : DifferentiableOn ℂ f (Metric.ball z₀.re rx ×ℂ Metric.ball z₀.im ry) := by + apply hf.mono + intro x hx + simp + let A := hx.1 + simp at A + let B := hx.2 + simp at B + calc dist x z₀ + _ = √((x.re - z₀.re) ^ 2 + (x.im - z₀.im) ^ 2) := by exact Complex.dist_eq_re_im x z₀ + _ = sorry have h'z₁ : z₁ ∈ (Metric.ball z₀.re rx ×ℂ Metric.ball z₀.im ry) := by - sorry + dsimp [rx, ry] + constructor + · rw [dist_comm]; simp; exact hε + · rw [dist_comm]; simp; exact hε - let A := primitive_additivity f z₀ rx ry h'ry h'f z₁ h'z₁ - obtain ⟨εx, εy, hε⟩ := A + obtain ⟨εx, hεx, εy, hεy, hε⟩ := primitive_additivity h'f h'ry h'z₁ apply Filter.eventuallyEq_iff_exists_mem.2 use (Metric.ball z₁.re εx ×ℂ Metric.ball z₁.im εy) @@ -529,10 +560,8 @@ theorem primitive_additivity' exact Metric.isOpen_ball exact Metric.isOpen_ball constructor - · simp - sorry - · simp - sorry + · simpa + · simpa · intro x hx simp rw [← sub_zero (primitive z₀ f x), ← hε x hx]