Skip to content

Commit 802301f

Browse files
feat: prove that a meromorphic function is eventually analytic (#14820)
Prove that a meromorphic function at a point is analytic on a punctured neighborhood of it, and that a meromorphic function on a set is analytic on a codiscrete subset of it.
1 parent caab70e commit 802301f

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

β€ŽMathlib/Analysis/Analytic/Meromorphic.leanβ€Ž

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,23 @@ lemma zpow {f : π•œ β†’ π•œ} {x : π•œ} (hf : MeromorphicAt f x) (n : β„€) : M
142142
| ofNat m => simpa only [Int.ofNat_eq_coe, zpow_natCast] using hf.pow m
143143
| negSucc m => simpa only [zpow_negSucc, inv_iff] using hf.pow (m + 1)
144144

145+
theorem eventually_analyticAt [CompleteSpace E] {f : π•œ β†’ E} {x : π•œ}
146+
(h : MeromorphicAt f x) : βˆ€αΆ  y in 𝓝[β‰ ] x, AnalyticAt π•œ f y := by
147+
rw [MeromorphicAt] at h
148+
obtain ⟨n, h⟩ := h
149+
apply AnalyticAt.eventually_analyticAt at h
150+
refine (h.filter_mono ?_).mp ?_
151+
Β· simp [nhdsWithin]
152+
Β· rw [eventually_nhdsWithin_iff]
153+
apply Filter.Eventually.of_forall
154+
intro y hy hf
155+
rw [Set.mem_compl_iff, Set.mem_singleton_iff] at hy
156+
have := (((analyticAt_id π•œ y).sub analyticAt_const).pow n).inv
157+
(pow_ne_zero _ (sub_ne_zero_of_ne hy))
158+
apply (this.smul hf).congr ∘ (eventually_ne_nhds hy).mono
159+
intro z hz
160+
simp [smul_smul, hz, sub_eq_zero]
161+
145162
/-- The order of vanishing of a meromorphic function, as an element of `β„€ βˆͺ ∞` (to include the
146163
case of functions identically 0 near `x`). -/
147164
noncomputable def order {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) : WithTop β„€ :=
@@ -281,4 +298,14 @@ lemma congr (h_eq : Set.EqOn f g U) (hu : IsOpen U) : MeromorphicOn g U := by
281298
refine fun x hx ↦ (hf x hx).congr (EventuallyEq.filter_mono ?_ nhdsWithin_le_nhds)
282299
exact eventually_of_mem (hu.mem_nhds hx) h_eq
283300

301+
theorem eventually_codiscreteWithin_analyticAt
302+
[CompleteSpace E] (f : π•œ β†’ E) (h : MeromorphicOn f U) :
303+
βˆ€αΆ  (y : π•œ) in codiscreteWithin U, AnalyticAt π•œ f y := by
304+
rw [eventually_iff, mem_codiscreteWithin]
305+
intro x hx
306+
rw [disjoint_principal_right]
307+
apply Filter.mem_of_superset ((h x hx).eventually_analyticAt)
308+
intro x hx
309+
simp [hx]
310+
284311
end MeromorphicOn

0 commit comments

Comments
Β (0)