nevanlinna/Nevanlinna/meromorphicOn_decompose.lean

85 lines
2.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Mathlib.Analysis.Analytic.Meromorphic
import Nevanlinna.analyticAt
import Nevanlinna.divisor
import Nevanlinna.meromorphicAt
import Nevanlinna.meromorphicOn_divisor
import Nevanlinna.stronglyMeromorphicOn
import Nevanlinna.mathlibAddOn
open scoped Interval Topology
open Real Filter MeasureTheory intervalIntegral
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)
∧ (Set.EqOn h₁f.makeStronglyMeromorphicOn ((∏ᶠ p, fun z ↦ (z - p) ^ (h₁f.divisor p)) * g) U) := by
let g₁ : := f * (fun z ↦ ∏ᶠ p, (z - p) ^ (h₁f.divisor p))
have h₁g₁ : MeromorphicOn g₁ U := by
sorry
let g := h₁g₁.makeStronglyMeromorphicOn
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
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]
have A := (h₄g z hz).meromorphicAt_order
rw [h₂g ⟨z, hz⟩] at A
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
· intro z hz
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
apply Filter.EventuallyEq.eq_of_nhds
apply StronglyMeromorphicAt.localIdentity
· exact StronglyMeromorphicOn_of_makeStronglyMeromorphic h₁f z hz
· right
use h₁f.divisor z
use (∏ᶠ p ≠ z, (fun x ↦ (x - p) ^ h₁f.divisor p)) * g
constructor
· apply AnalyticAt.mul₁
· apply analyticAt_finprod
intro w
sorry
· apply (h₃g z hz).analytic
rw [h₂g ⟨z, hz⟩]
· constructor
· sorry
· sorry
sorry