nevanlinna/Nevanlinna/meromorphicOn_decompose.lean

82 lines
2.4 KiB
Plaintext
Raw Normal View History

2024-11-07 12:08:52 +01:00
import Mathlib.Analysis.Analytic.Meromorphic
import Nevanlinna.analyticAt
import Nevanlinna.divisor
import Nevanlinna.meromorphicAt
import Nevanlinna.meromorphicOn_divisor
import Nevanlinna.stronglyMeromorphicOn
open scoped Interval Topology
open Real Filter MeasureTheory intervalIntegral
2024-11-08 12:00:37 +01:00
lemma WithTopCoe
{n : WithTop } :
WithTop.map (Nat.cast : ) n = 0 → n = 0 := by
rcases n with h|h
· intro h
contradiction
· intro h₁
simp only [WithTop.map, Option.map] at h₁
have : (h : ) = 0 := by
exact WithTop.coe_eq_zero.mp h₁
have : h = 0 := by
exact Int.ofNat_eq_zero.mp this
rw [this]
rfl
2024-11-07 12:08:52 +01:00
2024-11-11 16:50:49 +01:00
2024-11-07 12:08:52 +01:00
theorem MeromorphicOn.decompose
{f : }
{U : Set }
(h₁U : IsConnected U)
(h₂U : IsCompact U)
(h₁f : MeromorphicOn f U)
(h₂f : ∃ z₀ ∈ U, f z₀ ≠ 0) :
∃ g : , (AnalyticOnNhd g U)
∧ (∀ z ∈ U, g z ≠ 0)
2024-11-07 16:10:37 +01:00
∧ (Set.EqOn h₁f.makeStronglyMeromorphicOn (fun z ↦ ∏ᶠ p, (z - p) ^ (h₁f.divisor p) * g z ) U) := by
let g₁ : := f * (fun z ↦ ∏ᶠ p, (z - p) ^ (h₁f.divisor p))
2024-11-08 12:05:49 +01:00
have h₁g₁ : MeromorphicOn g₁ U := by
sorry
2024-11-07 16:10:37 +01:00
let g := h₁g₁.makeStronglyMeromorphicOn
2024-11-08 12:05:49 +01:00
have h₁g : MeromorphicOn g U := by
sorry
have h₂g : ∀ z : U, (h₁g z.1 z.2).order = 0 := by
sorry
have h₃g : StronglyMeromorphicOn g U := by
sorry
2024-11-07 16:10:37 +01:00
have h₄g : AnalyticOnNhd g U := by
intro z hz
apply StronglyMeromorphicAt.analytic (h₃g z hz)
rw [h₂g ⟨z, hz⟩]
use g
constructor
· exact h₄g
· constructor
· intro z hz
rw [← (h₄g z hz).order_eq_zero_iff]
2024-11-08 08:40:58 +01:00
have A := (h₄g z hz).meromorphicAt_order
rw [h₂g ⟨z, hz⟩] at A
2024-11-08 12:00:37 +01:00
have t₀ : (h₄g z hz).order ≠ := by
by_contra hC
rw [hC] at A
tauto
have t₁ : ∃ n : , (h₄g z hz).order = n := by
exact Option.ne_none_iff_exists'.mp t₀
obtain ⟨n, hn⟩ := t₁
rw [hn] at A
apply WithTopCoe
rw [eq_comm]
rw [hn]
exact A
2024-11-07 16:10:37 +01:00
· intro z hz
2024-11-11 16:50:49 +01:00
have t₀ : ∀ᶠ x in 𝓝[≠] z, AnalyticAt f x := by
sorry
have t₂ : ∀ᶠ x in 𝓝[≠] z, h₁f.divisor z = 0 := by
sorry
have t₁ : ∀ᶠ x in 𝓝[≠] z, AnalyticAt (fun z => ∏ᶠ (p : ), (z - p) ^ h₁f.divisor p * g z) x := by
sorry
2024-11-07 16:10:37 +01:00
sorry