131 lines
3.6 KiB
Plaintext
131 lines
3.6 KiB
Plaintext
import Nevanlinna.stronglyMeromorphicAt
|
||
|
||
|
||
open Topology
|
||
|
||
|
||
/- Strongly MeromorphicOn -/
|
||
def StronglyMeromorphicOn
|
||
(f : ℂ → ℂ)
|
||
(U : Set ℂ) :=
|
||
∀ z ∈ U, StronglyMeromorphicAt f z
|
||
|
||
|
||
/- Strongly MeromorphicAt is Meromorphic -/
|
||
theorem StronglyMeromorphicOn.meromorphicOn
|
||
{f : ℂ → ℂ}
|
||
{U : Set ℂ}
|
||
(hf : StronglyMeromorphicOn f U) :
|
||
MeromorphicOn f U := by
|
||
intro z hz
|
||
exact StronglyMeromorphicAt.meromorphicAt (hf z hz)
|
||
|
||
|
||
/- Strongly MeromorphicOn of non-negative order is analytic -/
|
||
theorem StronglyMeromorphicOn.analytic
|
||
{f : ℂ → ℂ}
|
||
{U : Set ℂ}
|
||
(h₁f : StronglyMeromorphicOn f U)
|
||
(h₂f : ∀ x, (hx : x ∈ U) → 0 ≤ (h₁f x hx).meromorphicAt.order):
|
||
∀ z ∈ U, AnalyticAt ℂ f z := by
|
||
intro z hz
|
||
apply StronglyMeromorphicAt.analytic
|
||
exact h₂f z hz
|
||
exact h₁f z hz
|
||
|
||
|
||
/- Analytic functions are strongly meromorphic -/
|
||
theorem AnalyticOn.stronglyMeromorphicOn
|
||
{f : ℂ → ℂ}
|
||
{U : Set ℂ}
|
||
(h₁f : AnalyticOnNhd ℂ f U) :
|
||
StronglyMeromorphicOn f U := by
|
||
intro z hz
|
||
apply AnalyticAt.stronglyMeromorphicAt
|
||
exact h₁f z hz
|
||
|
||
|
||
/- Strongly meromorphic functions on compact, preconnected sets are quotients of analytic functions -/
|
||
theorem StronglyMeromorphicOn_finite
|
||
{f : ℂ → ℂ}
|
||
{U : Set ℂ}
|
||
(h₁U : IsCompact U)
|
||
(h₂U : IsPreconnected U)
|
||
(h₁f : StronglyMeromorphicOn f U)
|
||
(h₂f : ∃ z ∈ U, f z ≠ 0) :
|
||
Set.Finite {z ∈ U | f z = 0} := by
|
||
|
||
sorry
|
||
|
||
|
||
/- Strongly meromorphic functions on compact, preconnected sets are quotients of analytic functions -/
|
||
theorem StronglyMeromorphicOn_quotient
|
||
{f : ℂ → ℂ}
|
||
{U : Set ℂ}
|
||
(h₁U : IsCompact U)
|
||
(h₂U : IsPreconnected U)
|
||
(h₁f : StronglyMeromorphicOn f U)
|
||
(h₂f : ∃ z ∈ U, f z ≠ 0) :
|
||
∃ a b : ℂ → ℂ, (AnalyticOnNhd ℂ a U) ∧ (AnalyticOnNhd ℂ b U) ∧ (∀ z ∈ U, a z ≠ 0 ∨ b z ≠ 0) ∧ f = a / b := by
|
||
|
||
sorry
|
||
|
||
|
||
/- Make strongly MeromorphicAt -/
|
||
noncomputable def MeromorphicOn.makeStronglyMeromorphicOn
|
||
{f : ℂ → ℂ}
|
||
{U : Set ℂ}
|
||
(hf : MeromorphicOn f U) :
|
||
ℂ → ℂ := by
|
||
intro z
|
||
by_cases hz : z ∈ U
|
||
· exact (hf z hz).makeStronglyMeromorphicAt z
|
||
· exact f z
|
||
|
||
|
||
theorem makeStronglyMeromorphicOn_changeDiscrete
|
||
{f : ℂ → ℂ}
|
||
{U : Set ℂ}
|
||
{z₀ : ℂ}
|
||
(hf : MeromorphicOn f U)
|
||
(hz₀ : z₀ ∈ U) :
|
||
hf.makeStronglyMeromorphicOn =ᶠ[𝓝[≠] z₀] f := by
|
||
apply Filter.eventually_iff_exists_mem.2
|
||
let A := (hf z₀ hz₀).eventually_analyticAt
|
||
obtain ⟨V, h₁V, h₂V⟩ := Filter.eventually_iff_exists_mem.1 A
|
||
use V
|
||
constructor
|
||
· assumption
|
||
· intro v hv
|
||
unfold MeromorphicOn.makeStronglyMeromorphicOn
|
||
by_cases h₂v : v ∈ U
|
||
· simp [h₂v]
|
||
rw [← makeStronglyMeromorphic_id]
|
||
exact AnalyticAt.stronglyMeromorphicAt (h₂V v hv)
|
||
· simp [h₂v]
|
||
|
||
|
||
theorem makeStronglyMeromorphicOn_changeDiscrete'
|
||
{f : ℂ → ℂ}
|
||
{U : Set ℂ}
|
||
{z₀ : ℂ}
|
||
(hf : MeromorphicOn f U)
|
||
(hz₀ : z₀ ∈ U) :
|
||
hf.makeStronglyMeromorphicOn =ᶠ[𝓝 z₀] (hf z₀ hz₀).makeStronglyMeromorphicAt := by
|
||
apply Mnhds
|
||
let A := makeStronglyMeromorphicOn_changeDiscrete hf hz₀
|
||
apply Filter.EventuallyEq.trans A
|
||
exact m₂ (hf z₀ hz₀)
|
||
unfold MeromorphicOn.makeStronglyMeromorphicOn
|
||
simp [hz₀]
|
||
|
||
|
||
theorem StronglyMeromorphicOn_of_makeStronglyMeromorphicOn
|
||
{f : ℂ → ℂ}
|
||
{U : Set ℂ}
|
||
(hf : MeromorphicOn f U) :
|
||
StronglyMeromorphicOn hf.makeStronglyMeromorphicOn U := by
|
||
intro z₀ hz₀
|
||
rw [stronglyMeromorphicAt_congr (makeStronglyMeromorphicOn_changeDiscrete' hf hz₀)]
|
||
exact StronglyMeromorphicAt_of_makeStronglyMeromorphic (hf z₀ hz₀)
|