From ef7e1df191b1344275bfd856fc04e25621cb3089 Mon Sep 17 00:00:00 2001 From: Stefan Kebekus Date: Tue, 10 Sep 2024 14:21:08 +0200 Subject: [PATCH] =?UTF-8?q?Working=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Nevanlinna/analyticAt.lean | 24 ++++++++++++++ Nevanlinna/analyticOn_zeroSet.lean | 50 +++++++++++++++++++++--------- 2 files changed, 59 insertions(+), 15 deletions(-) diff --git a/Nevanlinna/analyticAt.lean b/Nevanlinna/analyticAt.lean index bb78c5a..c823777 100644 --- a/Nevanlinna/analyticAt.lean +++ b/Nevanlinna/analyticAt.lean @@ -50,3 +50,27 @@ theorem AnalyticAt.order_mul · constructor · exact IsOpen.inter h₂t₁ h₂t₂ · exact Set.mem_inter h₃t₁ h₃t₂ + + +theorem AnalyticAt.order_eq_zero_iff + {f : ℂ → ℂ} + {z₀ : ℂ} + (hf : AnalyticAt ℂ f z₀) : + hf.order = 0 ↔ f z₀ ≠ 0 := by + + have : (0 : ENat) = (0 : Nat) := by rfl + rw [this, AnalyticAt.order_eq_nat_iff hf 0] + + constructor + · intro hz + obtain ⟨g, _, h₂g, h₃g⟩ := hz + simp at h₃g + rw [Filter.Eventually.self_of_nhds h₃g] + tauto + · intro hz + use f + constructor + · exact hf + · constructor + · exact hz + · simp diff --git a/Nevanlinna/analyticOn_zeroSet.lean b/Nevanlinna/analyticOn_zeroSet.lean index a4f15ae..5011a37 100644 --- a/Nevanlinna/analyticOn_zeroSet.lean +++ b/Nevanlinna/analyticOn_zeroSet.lean @@ -97,6 +97,26 @@ theorem AnalyticOn.order_eq_nat_iff exact ⟨h₁g z₀ z₀.2, ⟨h₂g, Filter.Eventually.of_forall h₃g⟩⟩ +theorem AnalyticOn.support_of_order₁ + {f : ℂ → ℂ} + {U : Set ℂ} + (hf : AnalyticOn ℂ f U) : + Function.support hf.order = U.restrict f⁻¹' {0} := by + ext u + simp [AnalyticOn.order] + rw [not_iff_comm, (hf u u.2).order_eq_zero_iff] + + +theorem AnalyticOn.support_of_order₂ + {f : ℂ → ℂ} + {U : Set ℂ} + (h₁U : IsPreconnected U) + (h₁f : AnalyticOn ℂ f U) + (h₂f : ∃ u ∈ U, f u ≠ 0) : + Function.support (ENat.toNat ∘ h₁f.order) = U.restrict f⁻¹' {0} := by + sorry + + theorem AnalyticOn.eliminateZeros {f : ℂ → ℂ} {U : Set ℂ} @@ -358,16 +378,11 @@ theorem AnalyticOnCompact.eliminateZeros₁ let A := (finiteZeros h₁U h₂U h₁f h₂f).toFinset - let n : ℂ → ℕ := by - intro z - by_cases hz : z ∈ U - · exact (h₁f z hz).order.toNat - · exact 0 + let n : U → ℕ := fun z ↦ (h₁f z z.2).order.toNat have hn : ∀ a ∈ A, (h₁f a a.2).order = n a := by intro a _ - dsimp [n] - simp + dsimp [n, AnalyticOn.order] rw [eq_comm] apply XX h₁U exact h₂f @@ -375,14 +390,9 @@ theorem AnalyticOnCompact.eliminateZeros₁ obtain ⟨g, h₁g, h₂g, h₃g⟩ := AnalyticOn.eliminateZeros (A := A) h₁f n hn use g - have inter : ∀ (z : ℂ), f z = (∏ a ∈ A, (z - ↑a) ^ (h₁f.order a).toNat) • g z := by + have inter : ∀ (z : ℂ), f z = (∏ a ∈ A, (z - ↑a) ^ (h₁f (↑a) a.property).order.toNat) • g z := by intro z rw [h₃g z] - congr - funext a - congr - dsimp [n] - simp [a.2] constructor @@ -400,5 +410,15 @@ theorem AnalyticOnCompact.eliminateZeros₁ tauto rw [inter z] at this exact right_ne_zero_of_smul this - · - exact inter + · intro z + let φ : U → ℂ := fun a ↦ (z - ↑a) ^ (h₁f.order a).toNat + have hφ : Function.mulSupport φ ⊆ A := by + intro x hx + simp [φ] at hx + have : (h₁f.order x).toNat ≠ 0 := by + sorry + + sorry + rw [finprod_eq_prod_of_mulSupport_subset φ hφ] + rw [inter z] + rfl