Documentation

Mathlib.Analysis.Meromorphic.Order

Orders of Meromorphic Functions #

This file defines the order of a meromorphic function f at a point zβ‚€, as an element of β„€ βˆͺ {∞}.

We characterize the order being < 0, or = 0, or > 0, as the convergence of the function to infinity, resp. a nonzero constant, resp. zero.

TODO: Uniformize API between analytic and meromorphic functions

Order at a Point: Definition and Characterization #

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 a meromorphic function f at zβ‚€, as an element of β„€ βˆͺ {∞}.

The order is defined to be ∞ if f is identically 0 on a neighbourhood of zβ‚€, and otherwise the unique n such that f can locally be written as f z = (z - zβ‚€) ^ n β€’ g z, where g is analytic and does not vanish at zβ‚€. See MeromorphicAt.order_eq_top_iff and MeromorphicAt.order_eq_int_iff for these equivalences.

Equations
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) :

    The order of a meromorphic function f at a zβ‚€ is infinity iff f vanishes locally around zβ‚€.

    theorem MeromorphicAt.order_eq_int_iff {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} {n : β„€} (hf : MeromorphicAt f x) :
    hf.order = ↑n ↔ βˆƒ (g : π•œ β†’ E), AnalyticAt π•œ g x ∧ g x β‰  0 ∧ βˆ€αΆ  (z : π•œ) in nhdsWithin x {x}ᢜ, f z = (z - x) ^ n β€’ g z

    The order of a meromorphic function f at zβ‚€ equals an integer n iff f can locally be written as f z = (z - zβ‚€) ^ n β€’ g z, where g is analytic and does not vanish at zβ‚€.

    theorem MeromorphicAt.order_ne_top_iff {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {zβ‚€ : π•œ} (hf : MeromorphicAt f zβ‚€) :
    hf.order β‰  ⊀ ↔ βˆƒ (g : π•œ β†’ E), AnalyticAt π•œ g zβ‚€ ∧ g zβ‚€ β‰  0 ∧ f =αΆ [nhdsWithin zβ‚€ {zβ‚€}ᢜ] fun (z : π•œ) => (z - zβ‚€) ^ hf.order.untopβ‚€ β€’ g z

    The order of a meromorphic function f at zβ‚€ is finite iff f can locally be written as f z = (z - zβ‚€) ^ order β€’ g z, where g is analytic and does not vanish at zβ‚€.

    theorem MeromorphicAt.order_ne_top_iff_eventually_ne_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : π•œ} {f : π•œ β†’ E} (hf : MeromorphicAt f x) :

    The order of a meromorphic function f at zβ‚€ is finite iff f does not have any zeros in a sufficiently small neighborhood of zβ‚€.

    theorem MeromorphicAt.tendsto_cobounded_of_order_neg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) (ho : hf.order < 0) :

    If the order of a meromorphic function is negative, then this function converges to infinity at this point. See also the iff version tendsto_cobounded_iff_order_neg.

    theorem MeromorphicAt.tendsto_ne_zero_of_order_eq_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) (ho : hf.order = 0) :
    βˆƒ (c : E), c β‰  0 ∧ Filter.Tendsto f (nhdsWithin x {x}ᢜ) (nhds c)

    If the order of a meromorphic function is zero, then this function converges to a nonzero limit at this point. See also the iff version tendsto_ne_zero_iff_order_eq_zero.

    theorem MeromorphicAt.tendsto_zero_of_order_pos {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) (ho : 0 < hf.order) :

    If the order of a meromorphic function is positive, then this function converges to zero at this point. See also the iff version tendsto_zero_iff_order_pos.

    theorem MeromorphicAt.tendsto_nhds_of_order_nonneg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) (ho : 0 ≀ hf.order) :
    βˆƒ (c : E), Filter.Tendsto f (nhdsWithin x {x}ᢜ) (nhds c)

    If the order of a meromorphic function is nonnegative, then this function converges at this point. See also the iff version tendsto_nhds_iff_order_nonneg.

    theorem MeromorphicAt.tendsto_cobounded_iff_order_neg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) :

    A meromorphic function converges to infinity iff its order is negative.

    theorem MeromorphicAt.tendsto_nhds_iff_order_nonneg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) :
    (βˆƒ (c : E), Filter.Tendsto f (nhdsWithin x {x}ᢜ) (nhds c)) ↔ 0 ≀ hf.order

    A meromorphic function converges to a limit iff its order is nonnegative.

    theorem MeromorphicAt.tendsto_ne_zero_iff_order_eq_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) :
    (βˆƒ (c : E), c β‰  0 ∧ Filter.Tendsto f (nhdsWithin x {x}ᢜ) (nhds c)) ↔ hf.order = 0

    A meromorphic function converges to a nonzero limit iff its order is zero.

    theorem MeromorphicAt.tendsto_zero_iff_order_pos {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) :

    A meromorphic function converges to zero iff its order is positive.

    theorem MeromorphicAt.order_congr {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f₁ fβ‚‚ : π•œ β†’ E} {x : π•œ} (hf₁ : MeromorphicAt f₁ x) (hf₁₂ : f₁ =αΆ [nhdsWithin x {x}ᢜ] fβ‚‚) :
    hf₁.order = β‹―.order

    Meromorphic functions that agree in a punctured neighborhood of zβ‚€ have the same order at zβ‚€.

    theorem AnalyticAt.meromorphicAt_order {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : AnalyticAt π•œ f x) :

    Compatibility of notions of order for analytic and meromorphic functions.

    theorem AnalyticAt.meromorphicAt_order_nonneg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : AnalyticAt π•œ f x) :
    0 ≀ β‹―.order

    When seen as meromorphic functions, analytic functions have nonnegative order.

    theorem MeromorphicAt.analyticAt {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (h : MeromorphicAt f x) (h' : ContinuousAt f x) :
    AnalyticAt π•œ f x

    If a function is both meromorphic and continuous at a point, then it is analytic there.

    Order at a Point: Behaviour under Ring Operations #

    We establish additivity of the order under multiplication and taking powers.

    theorem MeromorphicAt.order_smul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : π•œ} {f : π•œ β†’ π•œ} {g : π•œ β†’ E} (hf : MeromorphicAt f x) (hg : MeromorphicAt g x) :
    β‹―.order = hf.order + hg.order

    The order is additive when multiplying scalar-valued and vector-valued meromorphic functions.

    theorem MeromorphicAt.order_mul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {x : π•œ} {f g : π•œ β†’ π•œ} (hf : MeromorphicAt f x) (hg : MeromorphicAt g x) :
    β‹―.order = hf.order + hg.order

    The order is additive when multiplying meromorphic functions.

    theorem MeromorphicAt.order_pow {π•œ : Type u_1} [NontriviallyNormedField π•œ] {f : π•œ β†’ π•œ} {x : π•œ} (hf : MeromorphicAt f x) {n : β„•} :
    β‹―.order = ↑n * hf.order

    The order multiplies by n when taking a meromorphic function to its nth power.

    theorem MeromorphicAt.order_zpow {π•œ : Type u_1} [NontriviallyNormedField π•œ] {f : π•œ β†’ π•œ} {x : π•œ} (hf : MeromorphicAt f x) {n : β„€} :
    β‹―.order = ↑n * hf.order

    The order multiplies by n when taking a meromorphic function to its nth power.

    theorem MeromorphicAt.order_inv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {x : π•œ} {f : π•œ β†’ π•œ} (hf : MeromorphicAt f x) :
    β‹―.order = -hf.order

    The order of the inverse is the negative of the order.

    theorem MeromorphicAt.order_add {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f₁ fβ‚‚ : π•œ β†’ E} {x : π•œ} (hf₁ : MeromorphicAt f₁ x) (hfβ‚‚ : MeromorphicAt fβ‚‚ x) :
    min hf₁.order hfβ‚‚.order ≀ β‹―.order

    The order of a sum is at least the minimum of the orders of the summands.

    theorem MeromorphicAt.order_add_of_order_lt_order {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f₁ fβ‚‚ : π•œ β†’ E} {x : π•œ} (hf₁ : MeromorphicAt f₁ x) (hfβ‚‚ : MeromorphicAt fβ‚‚ x) (h : hf₁.order < hfβ‚‚.order) :
    β‹―.order = hf₁.order

    Helper lemma for MeromorphicAt.order_add_of_order_ne.

    theorem MeromorphicAt.order_add_of_order_ne {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f₁ fβ‚‚ : π•œ β†’ E} {x : π•œ} (hf₁ : MeromorphicAt f₁ x) (hfβ‚‚ : MeromorphicAt fβ‚‚ x) (h : hf₁.order β‰  hfβ‚‚.order) :
    β‹―.order = min hf₁.order hfβ‚‚.order

    If two meromorphic functions have unequal orders, then the order of their sum is exactly the minimum of the orders of the summands.

    @[deprecated MeromorphicAt.order_add_of_order_ne (since := "2025-04-27")]
    theorem MeromorphicAt.order_add_of_unequal_order {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f₁ fβ‚‚ : π•œ β†’ E} {x : π•œ} (hf₁ : MeromorphicAt f₁ x) (hfβ‚‚ : MeromorphicAt fβ‚‚ x) (h : hf₁.order β‰  hfβ‚‚.order) :
    β‹―.order = min hf₁.order hfβ‚‚.order

    Alias of MeromorphicAt.order_add_of_order_ne.


    If two meromorphic functions have unequal orders, then the order of their sum is exactly the minimum of the orders of the summands.

    Level Sets of the Order Function #

    theorem MeromorphicOn.isClopen_setOf_order_eq_top {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {U : Set π•œ} (hf : MeromorphicOn f U) :
    IsClopen {u : ↑U | β‹―.order = ⊀}

    The set where a meromorphic function has infinite order is clopen in its domain of meromorphy.

    theorem MeromorphicOn.exists_order_ne_top_iff_forall {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {U : Set π•œ} (hf : MeromorphicOn f U) (hU : IsConnected U) :
    (βˆƒ (u : ↑U), β‹―.order β‰  ⊀) ↔ βˆ€ (u : ↑U), β‹―.order β‰  ⊀

    On a connected set, there exists a point where a meromorphic function f has finite order iff f has finite order at every point.

    theorem MeromorphicOn.order_ne_top_of_isPreconnected {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} {U : Set π•œ} (hf : MeromorphicOn f U) {y : π•œ} (hU : IsPreconnected U) (h₁x : x ∈ U) (hy : y ∈ U) (hβ‚‚x : β‹―.order β‰  ⊀) :

    On a preconnected set, a meromorphic function has finite order at one point if it has finite order at another point.

    theorem MeromorphicOn.eventually_analyticAt {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {U : Set π•œ} {f : π•œ β†’ E} {x : π•œ} (h : MeromorphicOn f U) (hx : x ∈ U) :
    βˆ€αΆ  (y : π•œ) in nhdsWithin x (U \ {x}), AnalyticAt π•œ f y

    If a function is meromorphic on a set U, then for each point in U, it is analytic at nearby points in U. When the target space is complete, this can be strengthened to analyticity at all nearby points, see MeromorphicAt.eventually_analyticAt.

    theorem MeromorphicOn.eventually_analyticAt_or_mem_compl {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {U : Set π•œ} {f : π•œ β†’ E} {x : π•œ} (h : MeromorphicOn f U) (hx : x ∈ U) :
    βˆ€αΆ  (y : π•œ) in nhdsWithin x {x}ᢜ, AnalyticAt π•œ f y ∨ y ∈ Uᢜ
    theorem MeromorphicOn.analyticAt_mem_codiscreteWithin {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {U : Set π•œ} (hf : MeromorphicOn f U) :
    {x : π•œ | AnalyticAt π•œ f x} ∈ Filter.codiscreteWithin U

    Meromorphic functions on U are analytic on U, outside of a discrete subset.

    theorem MeromorphicOn.codiscrete_setOf_order_eq_zero_or_top {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {U : Set π•œ} (hf : MeromorphicOn f U) :
    {u : ↑U | β‹―.order = 0 ∨ β‹―.order = ⊀} ∈ Filter.codiscrete ↑U

    The set where a meromorphic function has zero or infinite order is codiscrete within its domain of meromorphicity.