Meromorphic functions #
Main statements:
MeromorphicAt
: definition of meromorphy at a pointMeromorphicAt.iff_eventuallyEq_zpow_smul_analyticAt
:f
is meromorphic atz₀
iff we havef z = (z - z₀) ^ n • g z
on a punctured nhd ofz₀
, for somen : ℤ
andg
analytic at z₀.MeromorphicAt.order
: order of vanishing atz₀
, as an element ofℤ ∪ {∞}
def
MeromorphicAt
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
(f : 𝕜 → E)
(x : 𝕜)
:
Meromorphy of f
at x
(more precisely, on a punctured neighbourhood of x
; the value at
x
itself is irrelevant).
Equations
- MeromorphicAt f x = ∃ (n : ℕ), AnalyticAt 𝕜 (fun (z : 𝕜) => (z - x) ^ n • f z) x
Instances For
theorem
AnalyticAt.meromorphicAt
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{x : 𝕜}
(hf : AnalyticAt 𝕜 f x)
:
MeromorphicAt f x
theorem
MeromorphicAt.const
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
(e : E)
(x : 𝕜)
:
MeromorphicAt (fun (x : 𝕜) => e) x
theorem
MeromorphicAt.add
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{g : 𝕜 → E}
{x : 𝕜}
(hf : MeromorphicAt f x)
(hg : MeromorphicAt g x)
:
MeromorphicAt (f + g) x
theorem
MeromorphicAt.smul
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → 𝕜}
{g : 𝕜 → E}
{x : 𝕜}
(hf : MeromorphicAt f x)
(hg : MeromorphicAt g x)
:
MeromorphicAt (f • g) x
theorem
MeromorphicAt.mul
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{f : 𝕜 → 𝕜}
{g : 𝕜 → 𝕜}
{x : 𝕜}
(hf : MeromorphicAt f x)
(hg : MeromorphicAt g x)
:
MeromorphicAt (f * g) x
theorem
MeromorphicAt.neg
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{x : 𝕜}
(hf : MeromorphicAt f x)
:
MeromorphicAt (-f) x
@[simp]
theorem
MeromorphicAt.neg_iff
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{x : 𝕜}
:
MeromorphicAt (-f) x ↔ MeromorphicAt f x
theorem
MeromorphicAt.sub
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{g : 𝕜 → E}
{x : 𝕜}
(hf : MeromorphicAt f x)
(hg : MeromorphicAt g x)
:
MeromorphicAt (f - g) x
theorem
MeromorphicAt.congr
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{g : 𝕜 → E}
{x : 𝕜}
(hf : MeromorphicAt f x)
(hfg : f =ᶠ[nhdsWithin x {x}ᶜ] g)
:
MeromorphicAt g x
With our definitions, MeromorphicAt f x
depends only on the values of f
on a punctured
neighbourhood of x
(not on f x
)
theorem
MeromorphicAt.inv
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{f : 𝕜 → 𝕜}
{x : 𝕜}
(hf : MeromorphicAt f x)
:
MeromorphicAt f⁻¹ x
@[simp]
theorem
MeromorphicAt.inv_iff
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{f : 𝕜 → 𝕜}
{x : 𝕜}
:
MeromorphicAt f⁻¹ x ↔ MeromorphicAt f x
theorem
MeromorphicAt.div
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{f : 𝕜 → 𝕜}
{g : 𝕜 → 𝕜}
{x : 𝕜}
(hf : MeromorphicAt f x)
(hg : MeromorphicAt g x)
:
MeromorphicAt (f / g) x
theorem
MeromorphicAt.pow
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{f : 𝕜 → 𝕜}
{x : 𝕜}
(hf : MeromorphicAt f x)
(n : ℕ)
:
MeromorphicAt (f ^ n) x
theorem
MeromorphicAt.zpow
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{f : 𝕜 → 𝕜}
{x : 𝕜}
(hf : MeromorphicAt f x)
(n : ℤ)
:
MeromorphicAt (f ^ n) x
noncomputable def
MeromorphicAt.order
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{x : 𝕜}
(hf : MeromorphicAt f x)
:
The order of vanishing of a meromorphic function, as an element of ℤ ∪ ∞
(to include the
case of functions identically 0 near x
).
Equations
- hf.order = WithTop.map (fun (x : ℕ) => ↑x) ⋯.order - ↑(Exists.choose hf)
Instances For
theorem
MeromorphicAt.order_eq_top_iff
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{x : 𝕜}
(hf : MeromorphicAt f x)
:
theorem
MeromorphicAt.order_eq_int_iff
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{x : 𝕜}
(hf : MeromorphicAt f x)
(n : ℤ)
:
theorem
AnalyticAt.meromorphicAt_order
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{x : 𝕜}
(hf : AnalyticAt 𝕜 f x)
:
⋯.order = WithTop.map Nat.cast hf.order
Compatibility of notions of order
for analytic and meromorphic functions.
theorem
MeromorphicAt.iff_eventuallyEq_zpow_smul_analyticAt
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{x : 𝕜}
:
MeromorphicAt f x ↔ ∃ (n : ℤ) (g : 𝕜 → E), AnalyticAt 𝕜 g x ∧ ∀ᶠ (z : 𝕜) in nhdsWithin x {x}ᶜ, f z = (z - x) ^ n • g z
def
MeromorphicOn
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
(f : 𝕜 → E)
(U : Set 𝕜)
:
Meromorphy of a function on a set.
Equations
- MeromorphicOn f U = ∀ x ∈ U, MeromorphicAt f x
Instances For
theorem
AnalyticOn.meromorphicOn
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{U : Set 𝕜}
(hf : AnalyticOn 𝕜 f U)
:
MeromorphicOn f U
theorem
MeromorphicOn.const
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
(e : E)
{U : Set 𝕜}
:
MeromorphicOn (fun (x : 𝕜) => e) U
theorem
MeromorphicOn.mono_set
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{U : Set 𝕜}
(hf : MeromorphicOn f U)
{V : Set 𝕜}
(hv : V ⊆ U)
:
MeromorphicOn f V
theorem
MeromorphicOn.add
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{g : 𝕜 → E}
{U : Set 𝕜}
(hf : MeromorphicOn f U)
(hg : MeromorphicOn g U)
:
MeromorphicOn (f + g) U
theorem
MeromorphicOn.sub
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{g : 𝕜 → E}
{U : Set 𝕜}
(hf : MeromorphicOn f U)
(hg : MeromorphicOn g U)
:
MeromorphicOn (f - g) U
theorem
MeromorphicOn.neg
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{U : Set 𝕜}
(hf : MeromorphicOn f U)
:
MeromorphicOn (-f) U
@[simp]
theorem
MeromorphicOn.neg_iff
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{U : Set 𝕜}
:
MeromorphicOn (-f) U ↔ MeromorphicOn f U
theorem
MeromorphicOn.smul
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{s : 𝕜 → 𝕜}
{f : 𝕜 → E}
{U : Set 𝕜}
(hs : MeromorphicOn s U)
(hf : MeromorphicOn f U)
:
MeromorphicOn (s • f) U
theorem
MeromorphicOn.mul
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{s : 𝕜 → 𝕜}
{t : 𝕜 → 𝕜}
{U : Set 𝕜}
(hs : MeromorphicOn s U)
(ht : MeromorphicOn t U)
:
MeromorphicOn (s * t) U
theorem
MeromorphicOn.inv
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{s : 𝕜 → 𝕜}
{U : Set 𝕜}
(hs : MeromorphicOn s U)
:
MeromorphicOn s⁻¹ U
@[simp]
theorem
MeromorphicOn.inv_iff
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{s : 𝕜 → 𝕜}
{U : Set 𝕜}
:
MeromorphicOn s⁻¹ U ↔ MeromorphicOn s U
theorem
MeromorphicOn.div
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{s : 𝕜 → 𝕜}
{t : 𝕜 → 𝕜}
{U : Set 𝕜}
(hs : MeromorphicOn s U)
(ht : MeromorphicOn t U)
:
MeromorphicOn (s / t) U
theorem
MeromorphicOn.pow
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{s : 𝕜 → 𝕜}
{U : Set 𝕜}
(hs : MeromorphicOn s U)
(n : ℕ)
:
MeromorphicOn (s ^ n) U
theorem
MeromorphicOn.zpow
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{s : 𝕜 → 𝕜}
{U : Set 𝕜}
(hs : MeromorphicOn s U)
(n : ℤ)
:
MeromorphicOn (s ^ n) U
theorem
MeromorphicOn.congr
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : 𝕜 → E}
{g : 𝕜 → E}
{U : Set 𝕜}
(hf : MeromorphicOn f U)
(h_eq : Set.EqOn f g U)
(hu : IsOpen U)
:
MeromorphicOn g U