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 meromorphicOrderAt {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] (f : π•œ β†’ E) (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.meromorphicOrderAt_eq_top_iff and MeromorphicAt.meromorphicOrderAt_eq_int_iff for these equivalences.

If the function is not meromorphic at x, we use the junk value 0.

Equations
Instances For
    @[simp]
    theorem meromorphicOrderAt_of_not_meromorphicAt {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : Β¬MeromorphicAt f x) :
    theorem meromorphicAt_of_meromorphicOrderAt_ne_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : meromorphicOrderAt f x β‰  0) :
    theorem meromorphicOrderAt_eq_top_iff {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} :

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

    theorem eventuallyConst_nhdsNE_iff_meromorphicOrderAt_sub_eq_top {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} :
    Filter.EventuallyConst f (nhdsWithin x {x}ᢜ) ↔ βˆƒ (c : E), meromorphicOrderAt (fun (x : π•œ) => f x - c) x = ⊀
    theorem meromorphicOrderAt_eq_int_iff {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} {n : β„€} (hf : MeromorphicAt f x) :
    meromorphicOrderAt f x = ↑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 meromorphicOrderAt_ne_top_iff {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {zβ‚€ : π•œ} (hf : MeromorphicAt f zβ‚€) :
    meromorphicOrderAt f zβ‚€ β‰  ⊀ ↔ βˆƒ (g : π•œ β†’ E), AnalyticAt π•œ g zβ‚€ ∧ g zβ‚€ β‰  0 ∧ f =αΆ [nhdsWithin zβ‚€ {zβ‚€}ᢜ] fun (z : π•œ) => (z - zβ‚€) ^ (meromorphicOrderAt f zβ‚€).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 meromorphicOrderAt_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 tendsto_cobounded_of_meromorphicOrderAt_neg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (ho : meromorphicOrderAt f x < 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_meromorphicOrderAt_neg.

    theorem tendsto_ne_zero_of_meromorphicOrderAt_eq_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) (ho : meromorphicOrderAt f x = 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_meromorphicOrderAt_eq_zero.

    theorem tendsto_zero_of_meromorphicOrderAt_pos {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (ho : 0 < meromorphicOrderAt f x) :

    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_meromorphicOrderAt_pos.

    theorem tendsto_nhds_of_meromorphicOrderAt_nonneg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) (ho : 0 ≀ meromorphicOrderAt f x) :
    βˆƒ (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_meromorphicOrderAt_nonneg.

    theorem tendsto_cobounded_iff_meromorphicOrderAt_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 tendsto_nhds_iff_meromorphicOrderAt_nonneg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : MeromorphicAt f x) :

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

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

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

    theorem tendsto_zero_iff_meromorphicOrderAt_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 meromorphicOrderAt_congr {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f₁ fβ‚‚ : π•œ β†’ E} {x : π•œ} (hf₁₂ : f₁ =αΆ [nhdsWithin x {x}ᢜ] fβ‚‚) :

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

    theorem AnalyticAt.meromorphicOrderAt_eq {π•œ : 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.meromorphicOrderAt_nonneg {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} (hf : AnalyticAt π•œ f x) :

    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.

    theorem meromorphicOrderAt_const {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] (zβ‚€ : π•œ) (e : E) [Decidable (e = 0)] :
    meromorphicOrderAt (fun (x : π•œ) => e) zβ‚€ = if e = 0 then ⊀ else 0

    The order of a constant function is ⊀ if the constant is zero and 0 otherwise.

    theorem meromorphicOrderAt_const_intCast {π•œ : Type u_1} [NontriviallyNormedField π•œ] (zβ‚€ : π•œ) (n : β„€) [Decidable (↑n = 0)] :
    meromorphicOrderAt (↑n) zβ‚€ = if ↑n = 0 then ⊀ else 0

    The order of a constant function is ⊀ if the constant is zero and 0 otherwise.

    theorem meromorphicOrderAt_const_natCast {π•œ : Type u_1} [NontriviallyNormedField π•œ] (zβ‚€ : π•œ) (n : β„•) [Decidable (↑n = 0)] :
    meromorphicOrderAt (↑n) zβ‚€ = if ↑n = 0 then ⊀ else 0

    The order of a constant function is ⊀ if the constant is zero and 0 otherwise.

    @[simp]
    theorem meromorphicOrderAt_const_ofNat {π•œ : Type u_1} [NontriviallyNormedField π•œ] (zβ‚€ : π•œ) (n : β„•) [Decidable (↑n = 0)] :

    The order of a constant function is ⊀ if the constant is zero and 0 otherwise.

    Order at a Point: Behaviour under Ring Operations #

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

    theorem meromorphicOrderAt_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) :

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

    theorem meromorphicOrderAt_mul {π•œ : Type u_1} [NontriviallyNormedField π•œ] {x : π•œ} {f g : π•œ β†’ π•œ} (hf : MeromorphicAt f x) (hg : MeromorphicAt g x) :

    The order is additive when multiplying meromorphic functions.

    theorem meromorphicOrderAt_pow {π•œ : Type u_1} [NontriviallyNormedField π•œ] {f : π•œ β†’ π•œ} {x : π•œ} (hf : MeromorphicAt f x) {n : β„•} :

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

    theorem meromorphicOrderAt_zpow {π•œ : Type u_1} [NontriviallyNormedField π•œ] {f : π•œ β†’ π•œ} {x : π•œ} (hf : MeromorphicAt f x) {n : β„€} :

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

    theorem meromorphicOrderAt_inv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {x : π•œ} {f : π•œ β†’ π•œ} :

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

    @[simp]
    theorem meromorphicOrderAt_add_of_top_left {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f₁ fβ‚‚ : π•œ β†’ E} {x : π•œ} (hf₁ : meromorphicOrderAt f₁ x = ⊀) :
    meromorphicOrderAt (f₁ + fβ‚‚) x = meromorphicOrderAt fβ‚‚ x

    Adding a locally vanishing function does not change the order.

    @[simp]
    theorem meromorphicOrderAt_add_of_top_right {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f₁ fβ‚‚ : π•œ β†’ E} {x : π•œ} (hfβ‚‚ : meromorphicOrderAt fβ‚‚ x = ⊀) :
    meromorphicOrderAt (f₁ + fβ‚‚) x = meromorphicOrderAt f₁ x

    Adding a locally vanishing function does not change the order.

    theorem meromorphicOrderAt_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 (meromorphicOrderAt f₁ x) (meromorphicOrderAt fβ‚‚ x) ≀ meromorphicOrderAt (f₁ + fβ‚‚) x

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

    theorem meromorphicOrderAt_add_eq_left_of_lt {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f₁ fβ‚‚ : π•œ β†’ E} {x : π•œ} (hfβ‚‚ : MeromorphicAt fβ‚‚ x) (h : meromorphicOrderAt f₁ x < meromorphicOrderAt fβ‚‚ x) :
    meromorphicOrderAt (f₁ + fβ‚‚) x = meromorphicOrderAt f₁ x

    Helper lemma for meromorphicOrderAt_add_of_ne.

    theorem meromorphicOrderAt_add_eq_right_of_lt {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f₁ fβ‚‚ : π•œ β†’ E} {x : π•œ} (hf₁ : MeromorphicAt f₁ x) (h : meromorphicOrderAt fβ‚‚ x < meromorphicOrderAt f₁ x) :
    meromorphicOrderAt (f₁ + fβ‚‚) x = meromorphicOrderAt fβ‚‚ x

    Helper lemma for meromorphicOrderAt_add_of_ne.

    theorem meromorphicOrderAt_add_of_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 : meromorphicOrderAt f₁ x β‰  meromorphicOrderAt fβ‚‚ x) :
    meromorphicOrderAt (f₁ + fβ‚‚) x = min (meromorphicOrderAt f₁ x) (meromorphicOrderAt fβ‚‚ x)

    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_meromorphicOrderAt_eq_top {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {U : Set π•œ} (hf : MeromorphicOn f U) :

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

    theorem MeromorphicOn.exists_meromorphicOrderAt_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), meromorphicOrderAt f ↑u β‰  ⊀) ↔ βˆ€ (u : ↑U), meromorphicOrderAt f ↑u β‰  ⊀

    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.meromorphicOrderAt_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 : meromorphicOrderAt f x β‰  ⊀) :

    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] {f : π•œ β†’ E} {x : π•œ} {U : Set π•œ} (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] {f : π•œ β†’ E} {x : π•œ} {U : Set π•œ} (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_meromorphicOrderAt_eq_zero_or_top {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {U : Set π•œ} (hf : MeromorphicOn f U) :

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

    Order at a Point: Behaviour under Composition #

    theorem MeromorphicAt.meromorphicOrderAt_comp {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : π•œ} {f : π•œ β†’ E} {g : π•œ β†’ π•œ} (hf : MeromorphicAt f (g x)) (hg : AnalyticAt π•œ g x) (hg_nc : Β¬Filter.EventuallyConst g (nhds x)) :
    meromorphicOrderAt (f ∘ g) x = meromorphicOrderAt f (g x) * ENat.map Nat.cast (analyticOrderAt (fun (x_1 : π•œ) => g x_1 - g x) x)

    If g is analytic at x, f is meromorphic at g x, and g is not locally constant near x, the order of f ∘ g is the product of the orders of f and g · - g x.

    theorem meromorphicOrderAt_comp_of_deriv_ne_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {x : π•œ} {f : π•œ β†’ E} {g : π•œ β†’ π•œ} (hg : AnalyticAt π•œ g x) (hg' : deriv g x β‰  0) [CompleteSpace π•œ] [CharZero π•œ] :

    If g is analytic at x, and g' x β‰  0, then the meromorphic order of f ∘ g at x is the meromorphic order of f at g x (even if f is not meromorphic).

    theorem meromorphicOrderAt_smul_of_ne_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {x : π•œ} {g : π•œ β†’ π•œ} (hg : AnalyticAt π•œ g x) (hg' : g x β‰  0) :
    theorem meromorphicOrderAt_mul_of_ne_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {x : π•œ} {g f : π•œ β†’ π•œ} (hg : AnalyticAt π•œ g x) (hg' : g x β‰  0) :