Documentation

Mathlib.Analysis.Meromorphic.NormalFormAt

Normal form of meromorphic functions and continuous extension #

If a function f is meromorphic on U and if g differs from f only along a set that is codiscrete within U, then g is likewise meromorphic. The set of meromorphic functions is therefore huge, and =แถ [codiscreteWithin U] defines an equivalence relation.

This file implements continuous extension to provide an API that allows picking the 'unique best' representative of any given equivalence class, where 'best' means that the representative can locally near any point x be written 'in normal form', as f =แถ [๐“ x] fun z โ†ฆ (z - x) ^ n โ€ข g where g is analytic and does not vanish at x.

TODO #

Establish the analogous notion MeromorphicNFOn.

Normal form of meromorphic functions at a given point #

Definition and characterizations #

def MeromorphicNFAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] (f : ๐•œ โ†’ E) (x : ๐•œ) :

A function is 'meromorphic in normal form' at x if it vanishes around x or if it can locally be written as fun z โ†ฆ (z - x) ^ n โ€ข g where g is analytic and does not vanish at x.

Equations
Instances For
    theorem meromorphicNFAt_iff_analyticAt_or {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} :
    MeromorphicNFAt f x โ†” AnalyticAt ๐•œ f x โˆจ โˆƒ (hf : MeromorphicAt f x), hf.order < 0 โˆง f x = 0

    A meromorphic function has normal form at x iff it is either analytic there, or if it has a pole at x and takes the default value 0.

    Relation to other properties of functions #

    theorem MeromorphicNFAt.meromorphicAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} (hf : MeromorphicNFAt f x) :

    If a function is meromorphic in normal form at x, then it is meromorphic at x.

    theorem MeromorphicNFAt.order_nonneg_iff_analyticAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} (hf : MeromorphicNFAt f x) :
    0 โ‰ค โ‹ฏ.order โ†” AnalyticAt ๐•œ f x

    If a function is meromorphic in normal form at x, then it has non-negative order iff it is analytic.

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

    Analytic functions are meromorphic in normal form.

    theorem MeromorphicOn.meromorphicNFAt_mem_codiscreteWithin {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} [CompleteSpace E] {U : Set ๐•œ} (hf : MeromorphicOn f U) :

    Meromorphic functions have normal form outside of a discrete subset in the domain of meromorphicity.

    Vanishing and order #

    theorem MeromorphicNFAt.order_eq_zero_iff {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} (hf : MeromorphicNFAt f x) :
    โ‹ฏ.order = 0 โ†” f x โ‰  0

    If f is meromorphic in normal form at x, then f has order zero iff it does not vanish at x.

    See AnalyticAt.order_eq_zero_iff for an analogous statement about analytic functions.

    Local nature of the definition and local identity theorem #

    theorem MeromorphicNFAt.eventuallyEq_nhdNE_iff_eventuallyEq_nhd {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} {g : ๐•œ โ†’ E} (hf : MeromorphicNFAt f x) (hg : MeromorphicNFAt g x) :

    Local identity theorem: two meromorphic functions in normal form agree in a neighborhood iff they agree in a pointed neighborhood.

    See ContinuousAt.eventuallyEq_nhdNE_iff_eventuallyEq_nhd for the analogous statement for continuous functions.

    theorem meromorphicNFAt_congr {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} {g : ๐•œ โ†’ E} (hfg : f =แถ [nhds x] g) :

    Meromorphicity in normal form is a local property.

    Criteria to guarantee normal form #

    theorem MeromorphicNFAt.smul_analytic {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {g : ๐•œ โ†’ ๐•œ} {x : ๐•œ} (hf : MeromorphicNFAt f x) (hโ‚g : AnalyticAt ๐•œ g x) (hโ‚‚g : g x โ‰  0) :

    Helper lemma for meromorphicNFAt_iff_meromorphicNFAt_of_smul_analytic: if f is meromorphic in normal form at x and g is analytic without zero at x, then g โ€ข f is meromorphic in normal form at x.

    theorem meromorphicNFAt_smul_iff_right_of_analyticAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {g : ๐•œ โ†’ ๐•œ} {x : ๐•œ} (hโ‚g : AnalyticAt ๐•œ g x) (hโ‚‚g : g x โ‰  0) :

    If f is any function and g is analytic without zero at zโ‚€, then f is meromorphic in normal form at zโ‚€ iff g โ€ข f is meromorphic in normal form at zโ‚€.

    theorem meromorphicNFAt_mul_iff_right {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {g : ๐•œ โ†’ ๐•œ} {x : ๐•œ} {f : ๐•œ โ†’ ๐•œ} (hโ‚g : AnalyticAt ๐•œ g x) (hโ‚‚g : g x โ‰  0) :

    If f is any function and g is analytic without zero at zโ‚€, then f is meromorphic in normal form at zโ‚€ iff g * f is meromorphic in normal form at zโ‚€.

    theorem meromorphicNFAt_mul_iff_left {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {g : ๐•œ โ†’ ๐•œ} {x : ๐•œ} {f : ๐•œ โ†’ ๐•œ} (hโ‚g : AnalyticAt ๐•œ g x) (hโ‚‚g : g x โ‰  0) :

    If f is any function and g is analytic without zero at zโ‚€, then f is meromorphic in normal form at zโ‚€ iff f * g is meromorphic in normal form at zโ‚€.

    Continuous extension and conversion to normal form #

    noncomputable def toMeromorphicNFAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] (f : ๐•œ โ†’ E) (x : ๐•œ) :
    ๐•œ โ†’ E

    If f is meromorphic at x, convert f to normal form at x by changing its value at x. Otherwise, returns the 0 function.

    Equations
    Instances For
      theorem MeromorphicAt.eqOn_compl_singleton_toMermomorphicNFAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} (hf : MeromorphicAt f x) :

      Conversion to normal form at x changes the value only at x.

      @[simp]
      theorem toMeromorphicNFAt_of_not_meromorphicAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} (hf : ยฌMeromorphicAt f x) :

      If f is not meromorphic, conversion to normal form at x maps the function to 0.

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

      Conversion to normal form at x changes the value only at x.

      theorem meromorphicNFAt_toMeromorphicNFAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} :

      After conversion to normal form at x, the function has normal form.

      @[simp]
      theorem toMeromorphicNFAt_eq_self {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} :

      If f has normal form at x, then f equals f.toNF.

      theorem MeromorphicNFAt.inv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {x : ๐•œ} {f : ๐•œ โ†’ ๐•œ} (hf : MeromorphicNFAt f x) :

      If f is meromorphic in normal form, then so is its inverse.

      @[simp]
      theorem meromorphicNFAt_inv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {x : ๐•œ} {f : ๐•œ โ†’ ๐•œ} :

      A function to ๐•œ is meromorphic in normal form at a point iff its inverse is.

      Normal form of meromorphic functions on a given set #

      Definition #

      def MeromorphicNFOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] (f : ๐•œ โ†’ E) (U : Set ๐•œ) :

      A function is 'meromorphic in normal form' on U if has normal form at every point of U.

      Equations
      Instances For

        Relation to other properties of functions #

        theorem MeromorphicNFOn.meromorphicOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {U : Set ๐•œ} (hf : MeromorphicNFOn f U) :

        If a function is meromorphic in normal form on U, then it is meromorphic on U.

        theorem MeromorphicNFOn.divisor_nonneg_iff_analyticOnNhd {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {U : Set ๐•œ} [CompleteSpace E] (hโ‚f : MeromorphicNFOn f U) :

        If a function is meromorphic in normal form on U, then its divisor is non-negative iff it is analytic.

        theorem AnalyticOnNhd.meromorphicNFOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {U : Set ๐•œ} (hโ‚f : AnalyticOnNhd ๐•œ f U) :

        Analytic functions are meromorphic in normal form.

        Divisors and zeros of meromorphic functions in normal form. #

        theorem MeromorphicNFOn.zero_set_eq_divisor_support {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {U : Set ๐•œ} [CompleteSpace E] (hโ‚f : MeromorphicNFOn f U) (hโ‚‚f : โˆ€ (u : โ†‘U), โ‹ฏ.order โ‰  โŠค) :

        If f is meromorphic in normal form on U and nowhere locally constant zero, then its zero set equals the support of the associated divisor.

        Criteria to guarantee normal form #

        theorem meromorphicNFOn_smul_iff_right_of_analyticOnNhd {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {U : Set ๐•œ} {g : ๐•œ โ†’ ๐•œ} (hโ‚g : AnalyticOnNhd ๐•œ g U) (hโ‚‚g : โˆ€ u โˆˆ U, g u โ‰  0) :

        If f is any function and g is analytic without zero on U, then f is meromorphic in normal form on U iff g โ€ข f is meromorphic in normal form on U.

        theorem meromorphicNFOn_mul_iff_right_of_analyticOnNhd {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {U : Set ๐•œ} {f g : ๐•œ โ†’ ๐•œ} (hโ‚g : AnalyticOnNhd ๐•œ g U) (hโ‚‚g : โˆ€ u โˆˆ U, g u โ‰  0) :

        If f is any function and g is analytic without zero in U, then f is meromorphic in normal form on U iff g * f is meromorphic in normal form on U.

        theorem meromorphicNFOn_mul_iff_left_of_analyticOnNhd {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {U : Set ๐•œ} {f g : ๐•œ โ†’ ๐•œ} (hโ‚g : AnalyticOnNhd ๐•œ g U) (hโ‚‚g : โˆ€ u โˆˆ U, g u โ‰  0) :

        If f is any function and g is analytic without zero in U, then f is meromorphic in normal form on U iff f * g is meromorphic in normal form on U.

        theorem meromorphicNFOn_inv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {U : Set ๐•œ} {f : ๐•œ โ†’ ๐•œ} :

        A function to ๐•œ is meromorphic in normal form on U iff its inverse is.

        Continuous extension and conversion to normal form #

        noncomputable def toMeromorphicNFOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] (f : ๐•œ โ†’ E) (U : Set ๐•œ) :
        ๐•œ โ†’ E

        If f is meromorphic on U, convert f to normal form on U by changing its values along a discrete subset within U. Otherwise, returns the 0 function.

        Equations
        Instances For
          @[simp]
          theorem toMeromorphicNFOn_of_not_meromorphicOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {U : Set ๐•œ} (hf : ยฌMeromorphicOn f U) :

          If f is not meromorphic on U, conversion to normal form maps the function to 0.

          @[simp]
          theorem toMeromorphicNFOn_eq_self_on_compl {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {U : Set ๐•œ} (hf : MeromorphicOn f U) :

          Conversion to normal form on U does not change values outside of U.

          theorem toMeromorphicNFOn_eqOn_codiscrete {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {U : Set ๐•œ} [CompleteSpace E] (hf : MeromorphicOn f U) :

          Conversion to normal form on U changes the value only along a discrete subset of U.

          theorem MeromorphicOn.toMeromorphicNFOn_eq_self_on_nhdNE {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} {U : Set ๐•œ} [CompleteSpace E] (hf : MeromorphicOn f U) (hx : x โˆˆ U) :

          If f is meromorphic on U and x โˆˆ U, then f and its conversion to normal form on U agree in a punctured neighborhood of x.

          theorem toMeromorphicNFOn_eq_toMeromorphicNFAt_on_nhd {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} {U : Set ๐•œ} [CompleteSpace E] (hf : MeromorphicOn f U) (hx : x โˆˆ U) :

          If f is meromorphic on U and x โˆˆ U, then conversion to normal form at x and conversion to normal form on U agree in a neighborhood of x.

          theorem toMeromorphicNFOn_eq_toMeromorphicNFAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} {U : Set ๐•œ} [CompleteSpace E] (hf : MeromorphicOn f U) (hx : x โˆˆ U) :

          If f is meromorphic on U and x โˆˆ U, then conversion to normal form at x and conversion to normal form on U agree at x.

          theorem meromorphicNFOn_toMeromorphicNFOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] (f : ๐•œ โ†’ E) (U : Set ๐•œ) [CompleteSpace E] :

          After conversion to normal form on U, the function has normal form.

          @[simp]
          theorem toMeromorphicNFOn_eq_self {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {U : Set ๐•œ} [CompleteSpace E] :

          If f has normal form on U, then f equals toMeromorphicNFOn f U.

          @[simp]
          theorem order_toMeromorphicNFOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {x : ๐•œ} {U : Set ๐•œ} [CompleteSpace E] (hf : MeromorphicOn f U) (hx : x โˆˆ U) :
          โ‹ฏ.order = โ‹ฏ.order

          Conversion of normal form does not affect orders.

          @[simp]
          theorem MeromorphicOn.divisor_of_toMeromorphicNFOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {U : Set ๐•œ} [CompleteSpace E] (hf : MeromorphicOn f U) :

          Conversion of normal form does not affect divisors.