Update stronglyMeromorphic.lean

This commit is contained in:
Stefan Kebekus 2024-10-23 13:03:41 +02:00
parent e1b948ad2c
commit d80894ea6f
1 changed files with 47 additions and 50 deletions

View File

@ -3,6 +3,9 @@ import Nevanlinna.analyticAt
import Nevanlinna.mathlibAddOn import Nevanlinna.mathlibAddOn
open Topology
/- Strongly MeromorphicAt -/ /- Strongly MeromorphicAt -/
def StronglyMeromorphicAt def StronglyMeromorphicAt
(f : ) (f : )
@ -108,22 +111,28 @@ lemma m₂
{f : } {f : }
{z₀ : } {z₀ : }
(hf : MeromorphicAt f z₀) : (hf : MeromorphicAt f z₀) :
∀ᶠ (z : ) in nhdsWithin z₀ {z₀}ᶜ, f z = hf.makeStronglyMeromorphicAt z := by f =ᶠ[𝓝[≠] z₀] hf.makeStronglyMeromorphicAt := by
apply eventually_nhdsWithin_of_forall apply eventually_nhdsWithin_of_forall
exact fun x a => m₁ hf x a exact fun x a => m₁ hf x a
open Topology
lemma Mnhds lemma Mnhds
{f g : } {f g : }
{z₀ : } {z₀ : }
(h₁ : ∀ᶠ (z : ) in nhdsWithin z₀ {z₀}ᶜ, f z = g z) (h₁ : f =ᶠ[𝓝[≠] z₀] g)
(h₂ : f z₀ = g z₀) : (h₂ : f z₀ = g z₀) :
∀ᶠ (z : ) in nhds z₀, f z = g z := by f =ᶠ[𝓝 z₀] g := by
rw [eventually_nhds_iff] apply eventually_nhds_iff.2
rw [eventually_nhdsWithin_iff] at h₁ obtain ⟨t, h₁t, h₂t⟩ := eventually_nhds_iff.1 (eventually_nhdsWithin_iff.1 h₁)
sorry use t
constructor
· intro y hy
by_cases h₂y : y ∈ ({z₀}ᶜ : Set )
· exact h₁t y hy h₂y
· simp at h₂y
rwa [h₂y]
· exact h₂t
theorem StronglyMeromorphicAt_of_makeStronglyMeromorphic theorem StronglyMeromorphicAt_of_makeStronglyMeromorphic
{f : } {f : }
@ -132,51 +141,39 @@ theorem StronglyMeromorphicAt_of_makeStronglyMeromorphic
StronglyMeromorphicAt hf.makeStronglyMeromorphicAt z₀ := by StronglyMeromorphicAt hf.makeStronglyMeromorphicAt z₀ := by
by_cases h₂f : hf.order = by_cases h₂f : hf.order =
· rw [MeromorphicAt.order_eq_top_iff] at h₂f · have : hf.makeStronglyMeromorphicAt =ᶠ[𝓝 z₀] 0 := by
let Z : := fun z ↦ 0
have : hf.makeStronglyMeromorphicAt =ᶠ[𝓝 z₀] 0 := by
--unfold Filter.EventuallyEq
apply Mnhds apply Mnhds
· apply eventually_nhdsWithin_of_forall · apply Filter.EventuallyEq.trans (Filter.EventuallyEq.symm (m₂ hf))
intro x hx exact (MeromorphicAt.order_eq_top_iff hf).1 h₂f
· unfold MeromorphicAt.makeStronglyMeromorphicAt
sorry simp [h₂f]
sorry
apply AnalyticAt.stronglyMeromorphicAt apply AnalyticAt.stronglyMeromorphicAt
rw [analyticAt_congr this] rw [analyticAt_congr this]
apply analyticAt_const apply analyticAt_const
· let n := hf.order.untop h₂f
have : hf.order = n := by
exact Eq.symm (WithTop.coe_untop hf.order h₂f)
rw [hf.order_eq_int_iff] at this
obtain ⟨g, h₁g, h₂g, h₃g⟩ := this
right
use n
use g
constructor
· assumption
· constructor
· assumption
· apply Mnhds
· apply Filter.EventuallyEq.trans (Filter.EventuallyEq.symm (m₂ hf))
exact h₃g
· unfold MeromorphicAt.makeStronglyMeromorphicAt
simp
by_cases h₃f : hf.order = 0
· simp [h₃f]
sorry
· simp [h₃f]
by_cases h₂f : hf.order = 0
· apply AnalyticAt.stronglyMeromorphicAt
let A := h₂f
rw [(by rfl : (0 : WithTop ) = (0 : )), hf.order_eq_int_iff] at A
simp at A
have : hf.makeStronglyMeromorphicAt = Classical.choose A := by
simp [MeromorphicAt.makeStronglyMeromorphicAt, h₂f]
let B := Classical.choose_spec A
rw [this]
tauto
· by_cases h₃f : hf.order =
· rw [MeromorphicAt.order_eq_top_iff] at h₃f
left left
apply zero_zpow n
sorry dsimp [n]
· sorry rwa [WithTop.untop_eq_iff h₂f]
theorem makeStronglyMeromorphic_eventuallyEq
{f : }
{z₀ : }
(hf : MeromorphicAt f z₀) :
∀ᶠ (z : ) in nhdsWithin z₀ {z₀}ᶜ, f z = hf.makeStronglyMeromorphicAt z := by
sorry